br_boleto 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/Gemfile.lock +3 -3
  4. data/README.markdown +196 -11
  5. data/Rakefile +5 -0
  6. data/br_boleto.gemspec +1 -1
  7. data/lib/br_boleto.rb +30 -12
  8. data/lib/br_boleto/{core/boleto.rb → boleto/base.rb} +83 -5
  9. data/lib/br_boleto/boleto/sicoob.rb +211 -0
  10. data/lib/br_boleto/calculos/modulo11_fator3197.rb +5 -5
  11. data/lib/br_boleto/helper/cpf_cnpj.rb +60 -0
  12. data/lib/br_boleto/helper/number.rb +15 -0
  13. data/lib/br_boleto/remessa/base.rb +89 -0
  14. data/lib/br_boleto/remessa/cnab240/base.rb +328 -0
  15. data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +186 -0
  16. data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +180 -0
  17. data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +349 -0
  18. data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +206 -0
  19. data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +261 -0
  20. data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +193 -0
  21. data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +88 -0
  22. data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +75 -0
  23. data/lib/br_boleto/remessa/cnab240/sicoob.rb +246 -0
  24. data/lib/br_boleto/remessa/lote.rb +52 -0
  25. data/lib/br_boleto/remessa/pagamento.rb +238 -0
  26. data/lib/br_boleto/string_methods.rb +21 -0
  27. data/lib/br_boleto/version.rb +2 -2
  28. data/test/br_boleto/{core/boleto_test.rb → boleto/base_test.rb} +107 -11
  29. data/test/br_boleto/{core → boleto}/sicoob_test.rb +60 -2
  30. data/test/br_boleto/remessa/base_test.rb +80 -0
  31. data/test/br_boleto/remessa/cnab240/base_test.rb +405 -0
  32. data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +208 -0
  33. data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +200 -0
  34. data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +390 -0
  35. data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +223 -0
  36. data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +260 -0
  37. data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +217 -0
  38. data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +82 -0
  39. data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +67 -0
  40. data/test/br_boleto/remessa/cnab240/sicoob_test.rb +347 -0
  41. data/test/br_boleto/remessa/lote_test.rb +49 -0
  42. data/test/br_boleto/remessa/pagamento_test.rb +339 -0
  43. data/test/factories/{boleto.rb → boleto/base.rb} +1 -1
  44. data/test/factories/{boleto_sicoob.rb → boleto/boleto_sicoob.rb} +1 -1
  45. data/test/factories/remessa/base.rb +13 -0
  46. data/test/factories/remessa/cnab240/base.rb +18 -0
  47. data/test/factories/remessa/cnab240/sicoob.rb +18 -0
  48. data/test/factories/remessa/lote.rb +7 -0
  49. data/test/factories/remessa/pagamento.rb +16 -0
  50. data/test/inheritance/boleto_test.rb +1 -1
  51. data/test/inheritance/sicoob_test.rb +1 -1
  52. metadata +65 -13
  53. data/lib/br_boleto/core/sicoob.rb +0 -169
@@ -0,0 +1,52 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module BrBoleto
3
+ module Remessa
4
+ class Lote
5
+ # Seguindo a interface do Active Model para:
6
+ # * Validações;
7
+ # * Internacionalização;
8
+ # * Nomes das classes para serem manipuladas;
9
+ #
10
+ include ActiveModel::Model
11
+
12
+ # variavel que terá os pagamentos no qual será gerado o lote do arquivo de remessa
13
+ # Pode haver 1 ou vários pagamentos para o mesmo arquivo
14
+ attr_accessor :pagamentos
15
+
16
+ def self.class_for_pagamentos
17
+ BrBoleto::Remessa::Pagamento
18
+ end
19
+
20
+ def initialize(attributes = {})
21
+ self.pagamentos = [] # Para poder utilizar o << para incrementar o array
22
+ assign_attributes(attributes)
23
+ yield self if block_given?
24
+ end
25
+
26
+ def assign_attributes(attributes)
27
+ attributes ||= {}
28
+ attributes.each do |name, value|
29
+ send("#{name}=", value)
30
+ end
31
+ end
32
+
33
+ validates_each :pagamentos do |record, attr, value|
34
+ record.errors.add(attr, 'não pode estar vazio.') if value.empty?
35
+ value.each do |pagamento|
36
+ if pagamento.is_a? record.class.class_for_pagamentos
37
+ if pagamento.invalid?
38
+ pagamento.errors.full_messages.each { |msg| record.errors.add(attr, msg) }
39
+ end
40
+ else
41
+ record.errors.add(attr, 'cada item deve ser um objeto Pagamento.')
42
+ end
43
+ end
44
+ end
45
+
46
+ # O atributo pagamentos sempre irá retornar umm Array
47
+ def pagamentos
48
+ @pagamentos = [@pagamentos].flatten
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,238 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module BrBoleto
3
+ module Remessa
4
+ class Pagamento
5
+ # Seguindo a interface do Active Model para:
6
+ # * Validações;
7
+ # * Internacionalização;
8
+ # * Nomes das classes para serem manipuladas;
9
+ #
10
+ include ActiveModel::Model
11
+
12
+ # <b>REQUERIDO</b>: nosso numero
13
+ attr_accessor :nosso_numero
14
+
15
+ # <b>REQUERIDO</b>: data do vencimento do boleto
16
+ attr_accessor :data_vencimento
17
+
18
+ # <b>REQUERIDO</b>: data de emissao do boleto
19
+ attr_accessor :data_emissao
20
+
21
+ # <b>REQUERIDO</b>: valor_documento do boleto
22
+ attr_accessor :valor_documento
23
+
24
+ # <b>REQUERIDO</b>: documento do sacado (cliente)
25
+ attr_accessor :documento_sacado
26
+
27
+ # <b>REQUERIDO</b>: nome do sacado (cliente)
28
+ attr_accessor :nome_sacado
29
+
30
+ # <b>REQUERIDO</b>: endereco do sacado (cliente)
31
+ attr_accessor :endereco_sacado
32
+
33
+ # <b>REQUERIDO</b>: bairro do sacado (cliente)
34
+ attr_accessor :bairro_sacado
35
+
36
+ # <b>REQUERIDO</b>: CEP do sacado (cliente)
37
+ attr_accessor :cep_sacado
38
+
39
+ # <b>REQUERIDO</b>: cidade do sacado (cliente)
40
+ attr_accessor :cidade_sacado
41
+
42
+ # <b>REQUERIDO</b>: UF do sacado (cliente)
43
+ attr_accessor :uf_sacado
44
+
45
+ # <b>REQUERIDO</b>: Tipor de impressão
46
+ # 1 - Frente do Bloqueto
47
+ # 2 - Verso do Bloauqto
48
+ # 3 - Corpo de instruções da Ficha de Complansação
49
+ #
50
+ attr_accessor :tipo_impressao # Default '1'
51
+
52
+ # <b>OPCIONAL</b>: nome do avalista
53
+ attr_accessor :nome_avalista
54
+
55
+ # <b>OPCIONAL</b>: documento do avalista
56
+ attr_accessor :documento_avalista
57
+
58
+ # <b>OPCIONAL</b>: codigo da 1a instrucao
59
+ attr_accessor :cod_primeira_instrucao
60
+
61
+ # <b>OPCIONAL</b>: codigo da 2a instrucao
62
+ attr_accessor :cod_segunda_instrucao
63
+
64
+ # <b>OPCIONAL</b>: valor da mora ao dia
65
+ attr_accessor :valor_mora
66
+
67
+ # <b>OPCIONAL</b>: data limite para o desconto
68
+ attr_accessor :data_desconto
69
+
70
+ # <b>OPCIONAL</b>: valor a ser concedido de desconto
71
+ attr_accessor :valor_desconto
72
+
73
+ # <b>OPCIONAL</b>: codigo do desconto (para CNAB240)
74
+ attr_accessor :cod_desconto
75
+
76
+ # <b>OPCIONAL</b>: valor do IOF
77
+ attr_accessor :valor_iof
78
+
79
+ # <b>OPCIONAL</b>: valor do abatimento
80
+ attr_accessor :valor_abatimento
81
+
82
+ # <b>OPCIONAL</b>: Informações para o desconto 2
83
+ attr_accessor :desconto_2_codigo, :desconto_2_data, :desconto_2_valor
84
+
85
+ # <b>OPCIONAL</b>: Informações para o desconto 3
86
+ attr_accessor :desconto_3_codigo, :desconto_3_data, :desconto_3_valor
87
+
88
+ # <b>OPCIONAL</b>: Informações para multa
89
+ attr_accessor :codigo_multa, :data_multa, :valor_multa
90
+
91
+
92
+ validates :nosso_numero, :data_vencimento, :valor_documento, :documento_sacado, :nome_sacado,
93
+ :endereco_sacado, :cep_sacado, :cidade_sacado, :uf_sacado, :bairro_sacado, :tipo_impressao,
94
+ presence: true
95
+
96
+ validates :cep_sacado, length: {is: 8, message: 'deve ter 8 dígitos.'}
97
+ validates :cod_desconto, length: {is: 1, message: 'deve ter 1 dígito.'}
98
+
99
+ # Nova instancia da classe Pagamento
100
+ #
101
+ # @param campos [Hash]
102
+ #
103
+ def initialize(attributes = {})
104
+ attributes = default_values.merge!(attributes)
105
+ assign_attributes(attributes)
106
+ yield self if block_given?
107
+ end
108
+
109
+ def assign_attributes(attributes={})
110
+ attributes ||= {}
111
+ attributes.each do |name, value|
112
+ send("#{name}=", value)
113
+ end
114
+ end
115
+
116
+ def nosso_numero
117
+ "#{@nosso_numero}".gsub(/[^0-9]/, "")
118
+ end
119
+
120
+ def default_values
121
+ {
122
+ data_emissao: Date.today,
123
+ valor_mora: 0.0,
124
+ valor_desconto: 0.0,
125
+ valor_iof: 0.0,
126
+ valor_abatimento: 0.0,
127
+ nome_avalista: '',
128
+ cod_desconto: '0',
129
+ desconto_2_codigo: '0',
130
+ desconto_2_valor: 0.0,
131
+ desconto_3_codigo: '0',
132
+ desconto_3_valor: 0.0,
133
+ codigo_multa: '0', # Isento
134
+ valor_multa: 0.0,
135
+ tipo_impressao: '1'
136
+ }
137
+ end
138
+
139
+ # Formata a data de descontos de acordo com o formato passado
140
+ #
141
+ # @return [String]
142
+ #
143
+ def data_desconto_formatado(formato = '%d%m%y')
144
+ formata_data(data_desconto, formato)
145
+ end
146
+ def desconto_2_data_formatado(formato = '%d%m%y')
147
+ formata_data(desconto_2_data, formato)
148
+ end
149
+ def desconto_3_data_formatado(formato = '%d%m%y')
150
+ formata_data(desconto_3_data, formato)
151
+ end
152
+
153
+ # Formatação para campos da multa
154
+ def data_multa_formatado(formato = '%d%m%y')
155
+ formata_data(data_multa, formato)
156
+ end
157
+ def valor_multa_formatado(tamanho=13)
158
+ BrBoleto::Helper::Number.new(valor_multa).formata_valor_monetario(tamanho)
159
+ end
160
+
161
+ # Formata o campo valor
162
+ # referentes as casas decimais
163
+ # exe. R$199,90 => 0000000019990
164
+ #
165
+ # @param tamanho [Integer]
166
+ # quantidade de caracteres a ser retornado
167
+ #
168
+ def valor_documento_formatado(tamanho = 13)
169
+ BrBoleto::Helper::Number.new(valor_documento).formata_valor_monetario(tamanho)
170
+ end
171
+
172
+ # Formata o campo valor da mora
173
+ #
174
+ # @param tamanho [Integer]
175
+ # quantidade de caracteres a ser retornado
176
+ #
177
+ def valor_mora_formatado(tamanho = 13)
178
+ BrBoleto::Helper::Number.new(valor_mora).formata_valor_monetario(tamanho)
179
+ end
180
+
181
+ # Formata o campo valor dos descontos
182
+ #
183
+ # @param tamanho [Integer]
184
+ # quantidade de caracteres a ser retornado
185
+ #
186
+ def valor_desconto_formatado(tamanho = 13)
187
+ BrBoleto::Helper::Number.new(valor_desconto).formata_valor_monetario(tamanho)
188
+ end
189
+ def desconto_2_valor_formatado(tamanho = 13)
190
+ BrBoleto::Helper::Number.new(desconto_2_valor).formata_valor_monetario(tamanho)
191
+ end
192
+ def desconto_3_valor_formatado(tamanho = 13)
193
+ BrBoleto::Helper::Number.new(desconto_3_valor).formata_valor_monetario(tamanho)
194
+ end
195
+
196
+ # Formata o campo valor do IOF
197
+ #
198
+ # @param tamanho [Integer]
199
+ # quantidade de caracteres a ser retornado
200
+ #
201
+ def valor_iof_formatado(tamanho = 13)
202
+ BrBoleto::Helper::Number.new(valor_iof).formata_valor_monetario(tamanho)
203
+ end
204
+
205
+ # Formata o campo valor do IOF
206
+ #
207
+ # @param tamanho [Integer]
208
+ # quantidade de caracteres a ser retornado
209
+ #
210
+ def valor_abatimento_formatado(tamanho = 13)
211
+ BrBoleto::Helper::Number.new(valor_abatimento).formata_valor_monetario(tamanho)
212
+ end
213
+
214
+ # Retorna a identificacao do pagador
215
+ # Se for pessoa fisica (CPF com 11 digitos) é 1
216
+ # Se for juridica (CNPJ com 14 digitos) é 2
217
+ #
218
+ def tipo_documento_sacado(tamanho = 2)
219
+ BrBoleto::Helper::CpfCnpj.new(documento_sacado).tipo_documento(tamanho)
220
+ end
221
+
222
+ # Retorna a identificacao do avalista
223
+ # Se for pessoa fisica (CPF com 11 digitos) é 1
224
+ # Se for juridica (CNPJ com 14 digitos) é 2
225
+ #
226
+ def tipo_documento_avalista(tamanho = 2)
227
+ BrBoleto::Helper::CpfCnpj.new(documento_avalista).tipo_documento(tamanho)
228
+ end
229
+ private
230
+
231
+ def formata_data(value, formato="%d%m%Y")
232
+ value.strftime(formato)
233
+ rescue
234
+ return (formato == '%d%m%y' ? '000000' : '00000000')
235
+ end
236
+ end
237
+ end
238
+ end
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module BrBoleto
3
+ module StringMethods
4
+ # Formata o tamanho da string
5
+ # para o tamanho passado
6
+ # se a string for menor, adiciona espacos a direita
7
+ # se a string for maior, trunca para o num. de caracteres
8
+ #
9
+ def adjust_size_to(size, adjust=" ")
10
+ if self.size > size
11
+ truncate(size, omission: '')
12
+ else
13
+ ljust(size, adjust)
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ [String].each do |klass|
20
+ klass.class_eval { include BrBoleto::StringMethods }
21
+ end
@@ -1,7 +1,7 @@
1
1
  module BrBoleto
2
2
  module Version
3
- MAJOR = 0 #inclui alterações de API e pode quebrar compatibilidade com versões anteriores
4
- MINOR = 1 #inclui novas funcionalidades, sem quebrar APIs existentes
3
+ MAJOR = 1 #inclui alterações de API e pode quebrar compatibilidade com versões anteriores
4
+ MINOR = 0 #inclui novas funcionalidades, sem quebrar APIs existentes
5
5
  PATCH = 0 #corrige bugs ou traz melhorias em implementações já existentes
6
6
  CURRENT = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
@@ -1,25 +1,25 @@
1
1
  require 'test_helper'
2
2
 
3
- describe BrBoleto::Core::Boleto do
4
- subject { FactoryGirl.build(:core_boleto) }
3
+ describe BrBoleto::Boleto::Base do
4
+ subject { FactoryGirl.build(:boleto_base) }
5
5
 
6
6
  it { must validate_numericality_of(:valor_documento).is_less_than_or_equal_to(99999999.99) }
7
7
 
8
8
  describe "model_name" do
9
- it "must return BrBoleto::Core::Boleto" do
10
- BrBoleto::Core::Boleto.model_name.must_equal 'BrBoleto::Core::Boleto'
9
+ it "must return BrBoleto::Boleto::Base" do
10
+ BrBoleto::Boleto::Base.model_name.must_equal 'BrBoleto::Boleto::Base'
11
11
  end
12
12
  end
13
13
 
14
14
  describe "human_attribute_name" do
15
15
  it "must respond_to internationalization attribute" do
16
- BrBoleto::Core::Boleto.human_attribute_name(:same_thing).must_equal "Same thing"
16
+ BrBoleto::Boleto::Base.human_attribute_name(:same_thing).must_equal "Same thing"
17
17
  end
18
18
  end
19
19
 
20
20
  describe "to_partial_path" do
21
21
  it "must return the path from class name" do
22
- subject.to_partial_path.must_equal 'br_boleto/boleto'
22
+ subject.to_partial_path.must_equal 'br_boleto/base'
23
23
  end
24
24
  end
25
25
 
@@ -29,6 +29,12 @@ describe BrBoleto::Core::Boleto do
29
29
  end
30
30
  end
31
31
 
32
+ describe "#tipo_cobranca" do
33
+ it "default é nil" do
34
+ subject.tipo_cobranca.must_be_nil
35
+ end
36
+ end
37
+
32
38
  context '#initialize' do
33
39
  context "when passing a Hash" do
34
40
  before do
@@ -63,7 +69,7 @@ describe BrBoleto::Core::Boleto do
63
69
  it{ @object.especie_documento.must_equal 'DM' }
64
70
  it{ @object.data_documento.must_equal Date.today }
65
71
  it{ @object.sacado.must_equal 'Teste' }
66
- it{ @object.documento_sacado.must_equal '725.275.005-10' }
72
+ it{ @object.documento_sacado.must_equal '72527500510' }
67
73
  it{ @object.endereco_sacado.must_equal 'Rua teste, 23045'}
68
74
  it{ @object.local_pagamento.must_equal 'PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO' }
69
75
  it{ @object.instrucoes1.must_equal 'Lembrar de algo 1'}
@@ -106,7 +112,7 @@ describe BrBoleto::Core::Boleto do
106
112
  it {@object.codigo_cedente.must_equal '90182' }
107
113
  it {@object.endereco_cedente.must_equal 'Rua Itapaiuna, 2434' }
108
114
  it {@object.cedente.must_equal 'Nome da razao social' }
109
- it {@object.documento_cedente.must_equal '62.526.713/0001-40' }
115
+ it {@object.documento_cedente.must_equal '62526713000140' }
110
116
  it {@object.sacado.must_equal 'Teste' }
111
117
  it {@object.aceite.must_equal true }
112
118
  it {@object.instrucoes1.must_equal 'Lembrar de algo 1' }
@@ -118,6 +124,96 @@ describe BrBoleto::Core::Boleto do
118
124
  end
119
125
  end
120
126
 
127
+ describe "#documento_cedente" do
128
+ context "com CPF" do
129
+ before do
130
+ subject.documento_cedente = 2273542143
131
+ end
132
+ it "deve preencher com zeros a esquerda se for menor que 11" do
133
+ subject.documento_cedente.must_equal '02273542143'
134
+ end
135
+ it "deve remover a formatacao" do
136
+ subject.documento_cedente = '022.735.421-43'
137
+ subject.documento_cedente.must_equal '02273542143'
138
+ end
139
+ describe "metodo documento_cedente_formatado " do
140
+ it { subject.documento_cedente_formatado.must_equal '022.735.421-43' }
141
+ end
142
+ describe "metodo documento_cedente_formatado_com_label " do
143
+ it { subject.documento_cedente_formatado_com_label.must_equal 'CPF 022.735.421-43' }
144
+ end
145
+ end
146
+
147
+ context "com CNPJ" do
148
+ before do
149
+ subject.documento_cedente = 9372490000121
150
+ end
151
+ it "deve preencher com zeros a esquerda se tamanho for 12" do
152
+ subject.documento_cedente = 123456789012
153
+ subject.documento_cedente.must_equal '00123456789012'
154
+ end
155
+ it "deve preencher com zeros a esquerda se tamanho for 13" do
156
+ subject.documento_cedente = 9372490000121
157
+ subject.documento_cedente.must_equal '09372490000121'
158
+ end
159
+ it "deve remover a formatacao" do
160
+ subject.documento_cedente = '09.372.490/0001-21'
161
+ subject.documento_cedente.must_equal '09372490000121'
162
+ end
163
+ describe "metodo documento_cedente_formatado " do
164
+ it { subject.documento_cedente_formatado.must_equal '09.372.490/0001-21' }
165
+ end
166
+ describe "metodo documento_cedente_formatado_com_label " do
167
+ it { subject.documento_cedente_formatado_com_label.must_equal 'CNPJ 09.372.490/0001-21' }
168
+ end
169
+ end
170
+ end
171
+
172
+ describe "#documento_sacado" do
173
+ context "com CPF" do
174
+ before do
175
+ subject.documento_sacado = 2273542143
176
+ end
177
+ it "deve preencher com zeros a esquerda se for menor que 11" do
178
+ subject.documento_sacado.must_equal '02273542143'
179
+ end
180
+ it "deve remover a formatacao" do
181
+ subject.documento_sacado = '022.735.421-43'
182
+ subject.documento_sacado.must_equal '02273542143'
183
+ end
184
+ describe "metodo documento_sacado_formatado " do
185
+ it { subject.documento_sacado_formatado.must_equal '022.735.421-43' }
186
+ end
187
+ describe "metodo documento_sacado_formatado_com_label " do
188
+ it { subject.documento_sacado_formatado_com_label.must_equal 'CPF 022.735.421-43' }
189
+ end
190
+ end
191
+
192
+ context "com CNPJ" do
193
+ before do
194
+ subject.documento_sacado = 9372490000121
195
+ end
196
+ it "deve preencher com zeros a esquerda se tamanho for 12" do
197
+ subject.documento_sacado = 123456789012
198
+ subject.documento_sacado.must_equal '00123456789012'
199
+ end
200
+ it "deve preencher com zeros a esquerda se tamanho for 13" do
201
+ subject.documento_sacado = 9372490000121
202
+ subject.documento_sacado.must_equal '09372490000121'
203
+ end
204
+ it "deve remover a formatacao" do
205
+ subject.documento_sacado = '09.372.490/0001-21'
206
+ subject.documento_sacado.must_equal '09372490000121'
207
+ end
208
+ describe "metodo documento_sacado_formatado " do
209
+ it { subject.documento_sacado_formatado.must_equal '09.372.490/0001-21' }
210
+ end
211
+ describe "metodo documento_sacado_formatado_com_label " do
212
+ it { subject.documento_sacado_formatado_com_label.must_equal 'CNPJ 09.372.490/0001-21' }
213
+ end
214
+ end
215
+ end
216
+
121
217
  context "#carteira_formatada" do
122
218
  it "returns 'carteira' as default" do
123
219
  subject.stubs(:carteira).returns('Foo')
@@ -171,19 +267,19 @@ describe BrBoleto::Core::Boleto do
171
267
 
172
268
  describe "#aceite_formatado" do
173
269
  context "when is true" do
174
- subject { FactoryGirl.build(:core_boleto, aceite: true) }
270
+ subject { FactoryGirl.build(:boleto_base, aceite: true) }
175
271
 
176
272
  it{ subject.aceite_formatado.must_equal 'S' }
177
273
  end
178
274
 
179
275
  context "when is false" do
180
- subject { FactoryGirl.build(:core_boleto, aceite: false) }
276
+ subject { FactoryGirl.build(:boleto_base, aceite: false) }
181
277
 
182
278
  it{ subject.aceite_formatado.must_equal 'N' }
183
279
  end
184
280
 
185
281
  context "when is nil" do
186
- subject { FactoryGirl.build(:core_boleto, aceite: nil) }
282
+ subject { FactoryGirl.build(:boleto_base, aceite: nil) }
187
283
 
188
284
  it{ subject.aceite_formatado.must_equal 'N' }
189
285
  end