brcobranca 9.1.2 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,144 @@
1
+ # -*- encoding: utf-8 -*-
2
+ #
3
+
4
+ module Brcobranca
5
+ module Boleto
6
+ class Safra < Base # Banco Safra
7
+ validates_length_of :agencia, maximum: 5, message: 'deve ser menor ou igual a 4 dígitos.'
8
+ validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
9
+ validates_length_of :conta_corrente, maximum: 9, message: 'deve ser menor ou igual a 5 dígitos.'
10
+
11
+ # Codigo do banco emissor (3 dígitos sempre)
12
+ #
13
+ # @return [String] 3 caracteres numéricos.
14
+ def banco
15
+ '422'
16
+ end
17
+
18
+ # Agência
19
+ #
20
+ # @return [String] 5 caracteres numéricos.
21
+ def agencia=(valor)
22
+ @agencia = valor.to_s.rjust(5, '0') if valor
23
+ end
24
+
25
+ # Conta corrente
26
+ # @return [String] 9 caracteres numéricos.
27
+ def conta_corrente=(valor)
28
+ @conta_corrente = valor.to_s.rjust(9, '0') if valor
29
+ end
30
+
31
+ # Número seqüencial utilizado para identificar o boleto.
32
+ # @return [String] 8 caracteres numéricos.
33
+ def nosso_numero=(valor)
34
+ @nosso_numero = valor.to_s.rjust(8, '0') if valor
35
+ end
36
+
37
+ # Dígito verificador do nosso número.
38
+ #
39
+ # @return [String] 1 caracteres numéricos.
40
+ def nosso_numero_dv
41
+ nosso_numero.modulo11(
42
+ reverse: false,
43
+ mapeamento: { 10 => 0, 11 => 1 }
44
+ ) { |total| 11 - (total % 11) }
45
+ end
46
+
47
+ # Nosso número para exibir no boleto.
48
+ # @return [String]
49
+ # @example
50
+ # boleto.nosso_numero_boleto #=> "175/12345678-4"
51
+ def nosso_numero_boleto
52
+ "#{nosso_numero}-#{nosso_numero_dv}"
53
+ end
54
+
55
+ # Agência + conta corrente do cliente para exibir no boleto.
56
+ # @return [String]
57
+ # @example
58
+ # boleto.agencia_conta_boleto #=> "0811 / 53678-8"
59
+ def agencia_conta_boleto
60
+ "#{agencia} / #{conta_corrente}"
61
+ end
62
+
63
+ # Segunda parte do código de barras.
64
+ #
65
+ # ORMATAÇÃO DO CÓDIGO DE BARRAS - COBRANÇA REGISTRADA
66
+ # Campo
67
+ # Significado
68
+ #
69
+ # Formato
70
+ # Posições
71
+ # Conteúdo
72
+ # DE
73
+ #
74
+ # ATÉ
75
+ # Banco
76
+ # Banco Beneficiário do boleto
77
+ # 9 (03)
78
+ # 1
79
+ # 3
80
+ # 422
81
+ # Moeda
82
+ # Código da moeda
83
+ # 9 (01)
84
+ # 4
85
+ # 4
86
+ # 9 = real
87
+ # DAC
88
+ # DAC - Dígito de auto conferência
89
+ # 9 (01)
90
+ # 5
91
+ # 5
92
+ # Dígito de auto conferência
93
+ # Fator de Vencimento
94
+ # Data de vencimento do título
95
+ # 9(04)
96
+ # 6
97
+ # 9
98
+ # DV
99
+ # Valor
100
+ # Valor do boleto
101
+ # 9 (10)
102
+ # 10
103
+ # 19
104
+ # Valor do Boleto com zeros a esquerda
105
+ # Campo Livre
106
+ # Sistema
107
+ # 9 (01)
108
+ # 20
109
+ # 20
110
+ # 7 = Dígito do Bco Safra
111
+ # Campo Livre
112
+ # Agência
113
+ # 9 (05)
114
+ # 21
115
+ # 25
116
+ # (05) Agência do cliente Safra
117
+ # Campo Livre
118
+ # Cliente
119
+ # 9 (09)
120
+ # 26
121
+ # 34
122
+ # No da conta
123
+ # Campo Livre
124
+ # Nosso Número
125
+ # 9 (09)
126
+ # 35
127
+ # 43
128
+ # Nosso Número
129
+ # Campo Livre
130
+ # Tipo cobrança
131
+ # 9 (01)
132
+ #
133
+ # 44
134
+ # 44
135
+ #
136
+ # 2 = cobrança registrada
137
+ #
138
+ # @return [String] 25 caracteres numéricos.
139
+ def codigo_barras_segunda_parte
140
+ "7#{agencia}#{conta_corrente}#{nosso_numero}#{nosso_numero_dv}2"
141
+ end
142
+ end
143
+ end
144
+ end
@@ -2,5 +2,5 @@
2
2
  #
3
3
 
4
4
  module Brcobranca
5
- VERSION = '9.1.2'
5
+ VERSION = '9.2.0'
6
6
  end
@@ -32,8 +32,8 @@ RSpec.describe Brcobranca::Boleto::Base do
32
32
  expect(boleto_novo.data_vencimento).to eql(Date.current)
33
33
  expect(boleto_novo.aceite).to eql('S')
34
34
  expect(boleto_novo.quantidade).to be(1)
35
- expect(boleto_novo.valor).to be(0.0)
36
- expect(boleto_novo.valor_documento).to be(0.0)
35
+ expect(boleto_novo.valor).to eq(0.0)
36
+ expect(boleto_novo.valor_documento).to eq(0.0)
37
37
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
38
38
  expect(boleto_novo.valid?).to be_falsey
39
39
  end
@@ -47,8 +47,8 @@ RSpec.describe Brcobranca::Boleto::Base do
47
47
  expect(boleto_novo.data_vencimento).to eql(Date.current)
48
48
  expect(boleto_novo.aceite).to eql('S')
49
49
  expect(boleto_novo.quantidade).to be(1)
50
- expect(boleto_novo.valor).to be(0.0)
51
- expect(boleto_novo.valor_documento).to be(0.00)
50
+ expect(boleto_novo.valor).to eq(0.0)
51
+ expect(boleto_novo.valor_documento).to eq(0.00)
52
52
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
53
53
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
54
54
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -122,22 +122,22 @@ RSpec.describe Brcobranca::Boleto::Base do
122
122
  boleto_novo = described_class.new(@valid_attributes)
123
123
  boleto_novo.quantidade = 1
124
124
  boleto_novo.valor = 1
125
- expect(boleto_novo.valor_documento).to be(1.0)
125
+ expect(boleto_novo.valor_documento).to eq(1.0)
126
126
  boleto_novo.quantidade = 1
127
127
  boleto_novo.valor = 1.0
128
- expect(boleto_novo.valor_documento).to be(1.0)
128
+ expect(boleto_novo.valor_documento).to eq(1.0)
129
129
  boleto_novo.quantidade = 100
130
130
  boleto_novo.valor = 1
131
- expect(boleto_novo.valor_documento).to be(100.0)
131
+ expect(boleto_novo.valor_documento).to eq(100.0)
132
132
  boleto_novo.quantidade = 1
133
133
  boleto_novo.valor = 1.2
134
- expect(boleto_novo.valor_documento).to be(1.2)
134
+ expect(boleto_novo.valor_documento).to eq(1.2)
135
135
  boleto_novo.quantidade = 1
136
136
  boleto_novo.valor = 135.43
137
- expect(boleto_novo.valor_documento).to be(135.43)
137
+ expect(boleto_novo.valor_documento).to eq(135.43)
138
138
  boleto_novo.quantidade = 'gh'
139
139
  boleto_novo.valor = 135.43
140
- expect(boleto_novo.valor_documento).to be(0.0)
140
+ expect(boleto_novo.valor_documento).to eq(0.0)
141
141
  end
142
142
 
143
143
  it 'Mostrar aviso sobre sobrecarga de métodos padrões' do
@@ -28,8 +28,8 @@ RSpec.describe Brcobranca::Boleto::BancoBrasil do #:nodoc:[all]
28
28
  expect(boleto_novo.data_vencimento).to eql(Date.current)
29
29
  expect(boleto_novo.aceite).to eql('S')
30
30
  expect(boleto_novo.quantidade).to be(1)
31
- expect(boleto_novo.valor).to be(0.0)
32
- expect(boleto_novo.valor_documento).to be(0.0)
31
+ expect(boleto_novo.valor).to eq(0.0)
32
+ expect(boleto_novo.valor_documento).to eq(0.0)
33
33
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
34
34
  expect(boleto_novo.carteira).to eql('18')
35
35
  expect(boleto_novo.codigo_servico).to be_falsey
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::BancoBrasil do #:nodoc:[all]
45
45
  expect(boleto_novo.data_vencimento).to eql(Date.current)
46
46
  expect(boleto_novo.aceite).to eql('S')
47
47
  expect(boleto_novo.quantidade).to be(1)
48
- expect(boleto_novo.valor).to be(0.0)
49
- expect(boleto_novo.valor_documento).to be(0.0)
48
+ expect(boleto_novo.valor).to eq(0.0)
49
+ expect(boleto_novo.valor_documento).to eq(0.0)
50
50
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
51
51
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
52
52
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::BancoNordeste do #:nodoc:[all]
29
29
  expect(boleto_novo.data_vencimento).to eql(Date.current)
30
30
  expect(boleto_novo.aceite).to eql('S')
31
31
  expect(boleto_novo.quantidade).to be(1)
32
- expect(boleto_novo.valor).to be(0.0)
33
- expect(boleto_novo.valor_documento).to be(0.0)
32
+ expect(boleto_novo.valor).to eq(0.0)
33
+ expect(boleto_novo.valor_documento).to eq(0.0)
34
34
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
35
35
  expect(boleto_novo.carteira).to eql('21')
36
36
  end
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::BancoNordeste do #:nodoc:[all]
45
45
  expect(boleto_novo.data_vencimento).to eql(Date.current)
46
46
  expect(boleto_novo.aceite).to eql('S')
47
47
  expect(boleto_novo.quantidade).to be(1)
48
- expect(boleto_novo.valor).to be(25.0)
49
- expect(boleto_novo.valor_documento).to be(25.0)
48
+ expect(boleto_novo.valor).to eq(25.0)
49
+ expect(boleto_novo.valor_documento).to eq(25.0)
50
50
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
51
51
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
52
52
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::Banestes do #:nodoc:[all]
29
29
  expect(boleto_novo.data_vencimento).to eql(Date.current)
30
30
  expect(boleto_novo.aceite).to eql('S')
31
31
  expect(boleto_novo.quantidade).to be(1)
32
- expect(boleto_novo.valor).to be(0.0)
33
- expect(boleto_novo.valor_documento).to be(0.0)
32
+ expect(boleto_novo.valor).to eq(0.0)
33
+ expect(boleto_novo.valor_documento).to eq(0.0)
34
34
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
35
35
  expect(boleto_novo.carteira).to eql('11')
36
36
  end
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::Banestes do #:nodoc:[all]
45
45
  expect(boleto_novo.data_vencimento).to eql(Date.parse('2015-06-26'))
46
46
  expect(boleto_novo.aceite).to eql('S')
47
47
  expect(boleto_novo.quantidade).to be(1)
48
- expect(boleto_novo.valor).to be(1278.9)
49
- expect(boleto_novo.valor_documento).to be(1278.9)
48
+ expect(boleto_novo.valor).to eq(1278.9)
49
+ expect(boleto_novo.valor_documento).to eq(1278.9)
50
50
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
51
51
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
52
52
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -30,8 +30,8 @@ RSpec.describe Brcobranca::Boleto::Banrisul do #:nodoc:[all]
30
30
  expect(boleto_novo.data_vencimento).to eql(Date.current)
31
31
  expect(boleto_novo.aceite).to eql('S')
32
32
  expect(boleto_novo.quantidade).to be(1)
33
- expect(boleto_novo.valor).to be(0.0)
34
- expect(boleto_novo.valor_documento).to be(0.0)
33
+ expect(boleto_novo.valor).to eq(0.0)
34
+ expect(boleto_novo.valor_documento).to eq(0.0)
35
35
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
36
36
  expect(boleto_novo.carteira).to eql('2')
37
37
  end
@@ -46,8 +46,8 @@ RSpec.describe Brcobranca::Boleto::Banrisul do #:nodoc:[all]
46
46
  expect(boleto_novo.data_vencimento).to eql(Date.parse('2015-06-26'))
47
47
  expect(boleto_novo.aceite).to eql('S')
48
48
  expect(boleto_novo.quantidade).to be(1)
49
- expect(boleto_novo.valor).to be(1278.9)
50
- expect(boleto_novo.valor_documento).to be(1278.9)
49
+ expect(boleto_novo.valor).to eq(1278.9)
50
+ expect(boleto_novo.valor_documento).to eq(1278.9)
51
51
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
52
52
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
53
53
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::Bradesco do
29
29
  expect(boleto_novo.data_vencimento).to eql(Date.current)
30
30
  expect(boleto_novo.aceite).to eql('S')
31
31
  expect(boleto_novo.quantidade).to be(1)
32
- expect(boleto_novo.valor).to be(0.0)
33
- expect(boleto_novo.valor_documento).to be(0.0)
32
+ expect(boleto_novo.valor).to eq(0.0)
33
+ expect(boleto_novo.valor_documento).to eq(0.0)
34
34
  expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
35
35
  expect(boleto_novo.carteira).to eql('06')
36
36
  end
@@ -45,8 +45,8 @@ RSpec.describe Brcobranca::Boleto::Bradesco do
45
45
  expect(boleto_novo.data_vencimento).to eql(Date.current)
46
46
  expect(boleto_novo.aceite).to eql('S')
47
47
  expect(boleto_novo.quantidade).to be(1)
48
- expect(boleto_novo.valor).to be(0.0)
49
- expect(boleto_novo.valor_documento).to be(0.0)
48
+ expect(boleto_novo.valor).to eq(0.0)
49
+ expect(boleto_novo.valor_documento).to eq(0.0)
50
50
  expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
51
51
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
52
52
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -29,8 +29,8 @@ RSpec.describe Brcobranca::Boleto::Caixa do #:nodoc:[all]
29
29
  expect(boleto_novo.data_vencimento).to eql(Date.current)
30
30
  expect(boleto_novo.aceite).to eql('S')
31
31
  expect(boleto_novo.quantidade).to be(1)
32
- expect(boleto_novo.valor).to be(0.0)
33
- expect(boleto_novo.valor_documento).to be(0.0)
32
+ expect(boleto_novo.valor).to eq(0.0)
33
+ expect(boleto_novo.valor_documento).to eq(0.0)
34
34
  expect(boleto_novo.local_pagamento).to eql('PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE')
35
35
  expect(boleto_novo.codigo_servico).to be_falsey
36
36
  expect(boleto_novo.carteira).to eql('1')
@@ -28,8 +28,8 @@ RSpec.describe Brcobranca::Boleto::Hsbc do
28
28
  expect(boleto_novo.data_vencimento).to eql(Date.current)
29
29
  expect(boleto_novo.aceite).to eql('S')
30
30
  expect(boleto_novo.quantidade).to be(1)
31
- expect(boleto_novo.valor).to be(0.0)
32
- expect(boleto_novo.valor_documento).to be(0.0)
31
+ expect(boleto_novo.valor).to eq(0.0)
32
+ expect(boleto_novo.valor_documento).to eq(0.0)
33
33
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
34
34
  expect(boleto_novo.carteira).to eql('CNR')
35
35
  end
@@ -44,8 +44,8 @@ RSpec.describe Brcobranca::Boleto::Hsbc do
44
44
  expect(boleto_novo.data_vencimento).to eql(Date.current)
45
45
  expect(boleto_novo.aceite).to eql('S')
46
46
  expect(boleto_novo.quantidade).to be(1)
47
- expect(boleto_novo.valor).to be(0.0)
48
- expect(boleto_novo.valor_documento).to be(0.0)
47
+ expect(boleto_novo.valor).to eq(0.0)
48
+ expect(boleto_novo.valor_documento).to eq(0.0)
49
49
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
50
50
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
51
51
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -28,8 +28,8 @@ RSpec.describe Brcobranca::Boleto::Itau do
28
28
  expect(boleto_novo.data_vencimento).to eql(Date.current)
29
29
  expect(boleto_novo.aceite).to eql('S')
30
30
  expect(boleto_novo.quantidade).to be(1)
31
- expect(boleto_novo.valor).to be(0.0)
32
- expect(boleto_novo.valor_documento).to be(0.0)
31
+ expect(boleto_novo.valor).to eq(0.0)
32
+ expect(boleto_novo.valor_documento).to eq(0.0)
33
33
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
34
34
  expect(boleto_novo.carteira).to eql('175')
35
35
  end
@@ -44,8 +44,8 @@ RSpec.describe Brcobranca::Boleto::Itau do
44
44
  expect(boleto_novo.data_vencimento).to eql(Date.current)
45
45
  expect(boleto_novo.aceite).to eql('S')
46
46
  expect(boleto_novo.quantidade).to be(1)
47
- expect(boleto_novo.valor).to be(0.0)
48
- expect(boleto_novo.valor_documento).to be(0.0)
47
+ expect(boleto_novo.valor).to eq(0.0)
48
+ expect(boleto_novo.valor_documento).to eq(0.0)
49
49
  expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
50
50
  expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
51
51
  expect(boleto_novo.documento_cedente).to eql('12345678912')
@@ -0,0 +1,152 @@
1
+ # -*- encoding: utf-8 -*-
2
+ #
3
+
4
+ require 'spec_helper'
5
+
6
+ RSpec.describe Brcobranca::Boleto::Safra do
7
+ let(:valid_attributes) do
8
+ {
9
+ valor: 0.0,
10
+ local_pagamento: 'Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso',
11
+ cedente: 'Kivanio Barbosa',
12
+ documento_cedente: '12345678912',
13
+ sacado: 'Claudio Pozzebom',
14
+ sacado_documento: '12345678900',
15
+ agencia: '4042',
16
+ conta_corrente: '61900',
17
+ convenio: 12_387_989,
18
+ nosso_numero: '77700168'
19
+ }
20
+ end
21
+
22
+ it 'Criar nova instancia com atributos padrões' do
23
+ boleto_novo = described_class.new
24
+ expect(boleto_novo.banco).to eql('422')
25
+ expect(boleto_novo.especie_documento).to eql('DM')
26
+ expect(boleto_novo.especie).to eql('R$')
27
+ expect(boleto_novo.moeda).to eql('9')
28
+ expect(boleto_novo.data_processamento).to eql(Date.current)
29
+ expect(boleto_novo.data_vencimento).to eql(Date.current)
30
+ expect(boleto_novo.aceite).to eql('S')
31
+ expect(boleto_novo.quantidade).to be(1)
32
+ expect(boleto_novo.valor).to eq(0.0)
33
+ expect(boleto_novo.valor_documento).to eq(0.0)
34
+ expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
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('422')
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(0.0)
48
+ expect(boleto_novo.valor_documento).to eq(0.0)
49
+ expect(boleto_novo.local_pagamento).to eql('Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
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.conta_corrente).to eql('000061900')
55
+ expect(boleto_novo.agencia).to eql('04042')
56
+ expect(boleto_novo.convenio).to be(12_387_989)
57
+ expect(boleto_novo.nosso_numero).to eql('77700168')
58
+ end
59
+
60
+ it 'Montar código de barras' do
61
+ valid_attributes[:valor] = 180.84
62
+ valid_attributes[:data_documento] = Date.parse('2025-02-23')
63
+ valid_attributes[:data_vencimento] = Date.parse('2025-02-23')
64
+ valid_attributes[:nosso_numero] = '26173001'
65
+ valid_attributes[:conta_corrente] = '000278247'
66
+ valid_attributes[:agencia] = '00400'
67
+ boleto_novo = described_class.new(valid_attributes)
68
+
69
+ expect(boleto_novo.codigo_barras_segunda_parte).to eql('7004000002782472617300112')
70
+ expect(boleto_novo.codigo_barras).to eql('42296100100000180847004000002782472617300112')
71
+ expect(boleto_novo.codigo_barras.linha_digitavel).to eql('42297.00408 00002.782472 26173.001129 6 10010000018084')
72
+ end
73
+
74
+ it 'Não permitir gerar boleto com atributos inválido' do
75
+ boleto_novo = described_class.new
76
+ expect { boleto_novo.codigo_barras }.to raise_error(Brcobranca::BoletoInvalido)
77
+ expect(boleto_novo.errors.count).to be(5)
78
+ end
79
+
80
+ it 'Montar nosso_numero_boleto' do
81
+ boleto_novo = described_class.new(valid_attributes)
82
+
83
+ boleto_novo.nosso_numero = '94550200'
84
+ expect(boleto_novo.nosso_numero_boleto).to eql('94550200-1')
85
+ expect(boleto_novo.nosso_numero_dv).to be(1)
86
+
87
+ boleto_novo.nosso_numero = '93199999'
88
+ expect(boleto_novo.nosso_numero_boleto).to eql('93199999-5')
89
+ expect(boleto_novo.nosso_numero_dv).to be(5)
90
+
91
+ boleto_novo.nosso_numero = '26173001'
92
+ expect(boleto_novo.nosso_numero_boleto).to eql('26173001-1')
93
+ expect(boleto_novo.nosso_numero_dv).to be(1)
94
+ end
95
+
96
+ it 'Montar agencia_conta_boleto' do
97
+ boleto_novo = described_class.new(valid_attributes)
98
+
99
+ expect(boleto_novo.agencia_conta_boleto).to eql('04042 / 000061900')
100
+ boleto_novo.agencia = '0719'
101
+ expect(boleto_novo.agencia_conta_boleto).to eql('00719 / 000061900')
102
+ boleto_novo.agencia = '0548'
103
+ boleto_novo.conta_corrente = '1448'
104
+ expect(boleto_novo.agencia_conta_boleto).to eql('00548 / 000001448')
105
+ end
106
+
107
+ describe 'Busca logotipo do banco' do
108
+ it_behaves_like 'busca_logotipo'
109
+ end
110
+
111
+ it 'Gerar boleto nos formatos válidos com método to_' do
112
+ valid_attributes[:valor] = 2952.95
113
+ valid_attributes[:data_documento] = Date.parse('2009-04-30')
114
+ valid_attributes[:data_vencimento] = Date.parse('2009-04-30')
115
+ valid_attributes[:nosso_numero] = '75896452'
116
+ valid_attributes[:conta_corrente] = '0403005'
117
+ valid_attributes[:agencia] = '1172'
118
+ boleto_novo = described_class.new(valid_attributes)
119
+
120
+ %w(pdf jpg tif png).each do |format|
121
+ file_body = boleto_novo.send("to_#{format}".to_sym)
122
+ tmp_file = Tempfile.new(['foobar.', format])
123
+ tmp_file.puts file_body
124
+ tmp_file.close
125
+ expect(File.exist?(tmp_file.path)).to be_truthy
126
+ expect(File.stat(tmp_file.path).zero?).to be_falsey
127
+ expect(File.delete(tmp_file.path)).to be(1)
128
+ expect(File.exist?(tmp_file.path)).to be_falsey
129
+ end
130
+ end
131
+
132
+ it 'Gerar boleto nos formatos válidos' do
133
+ valid_attributes[:valor] = 2952.95
134
+ valid_attributes[:data_documento] = Date.parse('2009-04-30')
135
+ valid_attributes[:data_vencimento] = Date.parse('2009-04-30')
136
+ valid_attributes[:nosso_numero] = '75896452'
137
+ valid_attributes[:conta_corrente] = '0403005'
138
+ valid_attributes[:agencia] = '1172'
139
+ boleto_novo = described_class.new(valid_attributes)
140
+
141
+ %w(pdf jpg tif png).each do |format|
142
+ file_body = boleto_novo.to(format)
143
+ tmp_file = Tempfile.new(['foobar.', format])
144
+ tmp_file.puts file_body
145
+ tmp_file.close
146
+ expect(File.exist?(tmp_file.path)).to be_truthy
147
+ expect(File.stat(tmp_file.path).zero?).to be_falsey
148
+ expect(File.delete(tmp_file.path)).to be(1)
149
+ expect(File.exist?(tmp_file.path)).to be_falsey
150
+ end
151
+ end
152
+ end