br_boleto 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/Gemfile.lock +3 -3
- data/README.markdown +196 -11
- data/Rakefile +5 -0
- data/br_boleto.gemspec +1 -1
- data/lib/br_boleto.rb +30 -12
- data/lib/br_boleto/{core/boleto.rb → boleto/base.rb} +83 -5
- data/lib/br_boleto/boleto/sicoob.rb +211 -0
- data/lib/br_boleto/calculos/modulo11_fator3197.rb +5 -5
- data/lib/br_boleto/helper/cpf_cnpj.rb +60 -0
- data/lib/br_boleto/helper/number.rb +15 -0
- data/lib/br_boleto/remessa/base.rb +89 -0
- data/lib/br_boleto/remessa/cnab240/base.rb +328 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +186 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +180 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +349 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +206 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +261 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +193 -0
- data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +88 -0
- data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +75 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +246 -0
- data/lib/br_boleto/remessa/lote.rb +52 -0
- data/lib/br_boleto/remessa/pagamento.rb +238 -0
- data/lib/br_boleto/string_methods.rb +21 -0
- data/lib/br_boleto/version.rb +2 -2
- data/test/br_boleto/{core/boleto_test.rb → boleto/base_test.rb} +107 -11
- data/test/br_boleto/{core → boleto}/sicoob_test.rb +60 -2
- data/test/br_boleto/remessa/base_test.rb +80 -0
- data/test/br_boleto/remessa/cnab240/base_test.rb +405 -0
- data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +208 -0
- data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +200 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +390 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +223 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +260 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +217 -0
- data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +82 -0
- data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +67 -0
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +347 -0
- data/test/br_boleto/remessa/lote_test.rb +49 -0
- data/test/br_boleto/remessa/pagamento_test.rb +339 -0
- data/test/factories/{boleto.rb → boleto/base.rb} +1 -1
- data/test/factories/{boleto_sicoob.rb → boleto/boleto_sicoob.rb} +1 -1
- data/test/factories/remessa/base.rb +13 -0
- data/test/factories/remessa/cnab240/base.rb +18 -0
- data/test/factories/remessa/cnab240/sicoob.rb +18 -0
- data/test/factories/remessa/lote.rb +7 -0
- data/test/factories/remessa/pagamento.rb +16 -0
- data/test/inheritance/boleto_test.rb +1 -1
- data/test/inheritance/sicoob_test.rb +1 -1
- metadata +65 -13
- data/lib/br_boleto/core/sicoob.rb +0 -169
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrBoleto::Remessa::Lote do
|
4
|
+
subject { FactoryGirl.build(:remessa_lote) }
|
5
|
+
let(:pagamento) { FactoryGirl.build(:remessa_pagamento) }
|
6
|
+
|
7
|
+
describe "#pagamentos" do
|
8
|
+
it "deve haver ao menos 1 pagamento" do
|
9
|
+
wont allow_value([]).for(:pagamentos).with_message("não pode estar vazio.")
|
10
|
+
end
|
11
|
+
it "deve ser um objeto pagamento" do
|
12
|
+
wont allow_value([subject.class.new()]).for(:pagamentos).with_message("cada item deve ser um objeto Pagamento.")
|
13
|
+
end
|
14
|
+
it "deve ser válido com um pagamento válido" do
|
15
|
+
must allow_value([pagamento]).for(:pagamentos)
|
16
|
+
end
|
17
|
+
it "não deve ser válidose houver algum pagamento inválido" do
|
18
|
+
wont allow_value([FactoryGirl.build(:remessa_pagamento, cep_sacado: nil)]).for(:pagamentos)
|
19
|
+
end
|
20
|
+
it "deve ser válido se passar apenas um pagamento sem Array" do
|
21
|
+
must allow_value(pagamento).for(:pagamentos)
|
22
|
+
end
|
23
|
+
it "se setar apenas 1 pagamento sem array deve retornar um array de 1 posicao" do
|
24
|
+
subject.pagamentos = pagamento
|
25
|
+
subject.pagamentos.size.must_equal 1
|
26
|
+
subject.pagamentos.is_a?(Array).must_equal true
|
27
|
+
subject.pagamentos[0].must_equal pagamento
|
28
|
+
end
|
29
|
+
it "posso setar mais que 1 pagamento" do
|
30
|
+
pagamento2 = FactoryGirl.build(:remessa_pagamento)
|
31
|
+
subject.pagamentos = [pagamento, pagamento2]
|
32
|
+
subject.pagamentos.size.must_equal 2
|
33
|
+
subject.pagamentos.is_a?(Array).must_equal true
|
34
|
+
subject.pagamentos[0].must_equal pagamento
|
35
|
+
subject.pagamentos[1].must_equal pagamento2
|
36
|
+
end
|
37
|
+
|
38
|
+
it "posso incrementar os pagamentos com <<" do
|
39
|
+
pagamento2 = FactoryGirl.build(:remessa_pagamento, valor_documento: 0.50)
|
40
|
+
subject.pagamentos = pagamento
|
41
|
+
subject.pagamentos.size.must_equal 1
|
42
|
+
subject.pagamentos << pagamento2
|
43
|
+
subject.pagamentos.size.must_equal 2
|
44
|
+
subject.pagamentos.is_a?(Array).must_equal true
|
45
|
+
subject.pagamentos[0].must_equal pagamento
|
46
|
+
subject.pagamentos[1].must_equal pagamento2
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,339 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
describe BrBoleto::Remessa::Pagamento do
|
5
|
+
subject { FactoryGirl.build(:remessa_pagamento) }
|
6
|
+
|
7
|
+
describe "validations" do
|
8
|
+
it { must validate_presence_of(:nosso_numero) }
|
9
|
+
it { must validate_presence_of(:data_vencimento) }
|
10
|
+
it { must validate_presence_of(:valor_documento) }
|
11
|
+
it { must validate_presence_of(:documento_sacado) }
|
12
|
+
it { must validate_presence_of(:nome_sacado) }
|
13
|
+
it { must validate_presence_of(:endereco_sacado) }
|
14
|
+
it { must validate_presence_of(:cep_sacado) }
|
15
|
+
it { must validate_presence_of(:cidade_sacado) }
|
16
|
+
it { must validate_presence_of(:uf_sacado) }
|
17
|
+
it { must validate_presence_of(:bairro_sacado) }
|
18
|
+
it { must validate_presence_of(:tipo_impressao) }
|
19
|
+
|
20
|
+
it { must validate_length_of(:cep_sacado).is_equal_to(8).with_message("deve ter 8 dígitos.") }
|
21
|
+
it { must validate_length_of(:cod_desconto).is_equal_to(1).with_message("deve ter 1 dígito.") }
|
22
|
+
end
|
23
|
+
|
24
|
+
context "default_values" do
|
25
|
+
it "for data_emissao" do
|
26
|
+
object = subject.class.new()
|
27
|
+
object.data_emissao.must_equal Date.today
|
28
|
+
end
|
29
|
+
it "for valor_mora" do
|
30
|
+
object = subject.class.new()
|
31
|
+
object.valor_mora.must_equal 0.0
|
32
|
+
end
|
33
|
+
it "for valor_desconto" do
|
34
|
+
object = subject.class.new()
|
35
|
+
object.valor_desconto.must_equal 0.0
|
36
|
+
end
|
37
|
+
it "for valor_iof" do
|
38
|
+
object = subject.class.new()
|
39
|
+
object.valor_iof.must_equal 0.0
|
40
|
+
end
|
41
|
+
it "for valor_abatimento" do
|
42
|
+
object = subject.class.new()
|
43
|
+
object.valor_abatimento.must_equal 0.0
|
44
|
+
end
|
45
|
+
it "for nome_avalista" do
|
46
|
+
object = subject.class.new()
|
47
|
+
object.nome_avalista.must_equal ''
|
48
|
+
end
|
49
|
+
it "for cod_desconto" do
|
50
|
+
object = subject.class.new()
|
51
|
+
object.cod_desconto.must_equal '0'
|
52
|
+
end
|
53
|
+
it "for tipo_impressao" do
|
54
|
+
object = subject.class.new()
|
55
|
+
object.tipo_impressao.must_equal '1'
|
56
|
+
end
|
57
|
+
it "for desconto_2_codigo" do
|
58
|
+
object = subject.class.new()
|
59
|
+
object.desconto_2_codigo.must_equal '0'
|
60
|
+
end
|
61
|
+
it "for desconto_2_valor" do
|
62
|
+
object = subject.class.new()
|
63
|
+
object.desconto_2_valor.must_equal 0.0
|
64
|
+
end
|
65
|
+
it "for desconto_3_codigo" do
|
66
|
+
object = subject.class.new()
|
67
|
+
object.desconto_3_codigo.must_equal '0'
|
68
|
+
end
|
69
|
+
it "for desconto_3_valor" do
|
70
|
+
object = subject.class.new()
|
71
|
+
object.desconto_3_valor.must_equal 0.0
|
72
|
+
end
|
73
|
+
it "for codigo_multa" do
|
74
|
+
object = subject.class.new()
|
75
|
+
object.codigo_multa.must_equal '0'
|
76
|
+
end
|
77
|
+
it "for valor_multa" do
|
78
|
+
object = subject.class.new()
|
79
|
+
object.valor_multa.must_equal 0.0
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "#assign_attributes" do
|
85
|
+
it "posso setar varios atributos" do
|
86
|
+
subject.assign_attributes({cep_sacado: "NOVO", cidade_sacado: "Valor", uf_sacado: "OK"})
|
87
|
+
subject.cep_sacado.must_equal 'NOVO'
|
88
|
+
subject.cidade_sacado.must_equal 'Valor'
|
89
|
+
subject.uf_sacado.must_equal 'OK'
|
90
|
+
end
|
91
|
+
it "nao deve sobrescrever os valores já setados com os valores padrões" do
|
92
|
+
subject.cod_desconto = '9'
|
93
|
+
subject.assign_attributes(valor_desconto: 500.88)
|
94
|
+
subject.cod_desconto.must_equal '9'
|
95
|
+
subject.valor_desconto.must_equal 500.88
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "initialize com bloco" do
|
100
|
+
subject do
|
101
|
+
BrBoleto::Remessa::Pagamento.new do |bl|
|
102
|
+
bl.nosso_numero = "999777"
|
103
|
+
bl.valor_documento = 789.44
|
104
|
+
end
|
105
|
+
end
|
106
|
+
it { subject.nosso_numero.must_equal '999777' }
|
107
|
+
it { subject.valor_documento.must_equal 789.44 }
|
108
|
+
end
|
109
|
+
|
110
|
+
describe "#formata_data" do
|
111
|
+
it "quando passar um valor nil" do
|
112
|
+
subject.send(:formata_data, nil).must_equal '00000000'
|
113
|
+
end
|
114
|
+
it "quando passar um valor nil mas passar outro formato para a data" do
|
115
|
+
subject.send(:formata_data, nil, "%d%m%y").must_equal '000000'
|
116
|
+
end
|
117
|
+
it "deve formatar a data com padrão ddmmyyyy" do
|
118
|
+
subject.send(:formata_data, Date.parse('30/12/2017')).must_equal '30122017'
|
119
|
+
end
|
120
|
+
it "deve formatar a data com formato passado por parametro" do
|
121
|
+
subject.send(:formata_data, Date.parse('30/12/2017'), "%d%m%y").must_equal '301217'
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "#data_desconto_formatado" do
|
126
|
+
it "deve chamar o metodo formata_data com padrão de formato %d%m%y" do
|
127
|
+
subject.data_desconto = Date.today
|
128
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%y").returns("123456")
|
129
|
+
subject.data_desconto_formatado.must_equal '123456'
|
130
|
+
end
|
131
|
+
it "deve chamar o metodo formata_data com o parametro passado" do
|
132
|
+
subject.data_desconto = Date.today
|
133
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%Y").returns("123456")
|
134
|
+
subject.data_desconto_formatado("%d%m%Y").must_equal '123456'
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "#desconto_2_data_formatado" do
|
139
|
+
it "deve chamar o metodo formata_data com padrão de formato %d%m%y" do
|
140
|
+
subject.desconto_2_data = Date.today
|
141
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%y").returns("123456")
|
142
|
+
subject.desconto_2_data_formatado.must_equal '123456'
|
143
|
+
end
|
144
|
+
it "deve chamar o metodo formata_data com o parametro passado" do
|
145
|
+
subject.desconto_2_data = Date.today
|
146
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%Y").returns("123456")
|
147
|
+
subject.desconto_2_data_formatado("%d%m%Y").must_equal '123456'
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe "#desconto_3_data_formatado" do
|
152
|
+
it "deve chamar o metodo formata_data com padrão de formato %d%m%y" do
|
153
|
+
subject.desconto_3_data = Date.today
|
154
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%y").returns("123456")
|
155
|
+
subject.desconto_3_data_formatado.must_equal '123456'
|
156
|
+
end
|
157
|
+
it "deve chamar o metodo formata_data com o parametro passado" do
|
158
|
+
subject.desconto_3_data = Date.today
|
159
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%Y").returns("123456")
|
160
|
+
subject.desconto_3_data_formatado("%d%m%Y").must_equal '123456'
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
describe "#data_multa_formatado" do
|
165
|
+
it "deve chamar o metodo formata_data com padrão de formato %d%m%y" do
|
166
|
+
subject.data_multa = Date.today
|
167
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%y").returns("123456")
|
168
|
+
subject.data_multa_formatado.must_equal '123456'
|
169
|
+
end
|
170
|
+
it "deve chamar o metodo formata_data com o parametro passado" do
|
171
|
+
subject.data_multa = Date.today
|
172
|
+
subject.expects(:formata_data).with(Date.today, "%d%m%Y").returns("123456")
|
173
|
+
subject.data_multa_formatado("%d%m%Y").must_equal '123456'
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
describe "#valor_documento_formatado" do
|
180
|
+
context "com padrao de tamanho = 13 digitos" do
|
181
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
182
|
+
subject.valor_documento = 7856.888
|
183
|
+
subject.valor_documento_formatado.must_equal "0000000785689"
|
184
|
+
end
|
185
|
+
end
|
186
|
+
context "passando a quantidade de digitos" do
|
187
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
188
|
+
subject.valor_documento = 7856.888
|
189
|
+
subject.valor_documento_formatado(10).must_equal "0000785689"
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
describe "#valor_mora_formatado" do
|
195
|
+
context "com padrao de tamanho = 13 digitos" do
|
196
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
197
|
+
subject.valor_mora = 7856.123
|
198
|
+
subject.valor_mora_formatado.must_equal "0000000785612"
|
199
|
+
end
|
200
|
+
end
|
201
|
+
context "passando a quantidade de digitos" do
|
202
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
203
|
+
subject.valor_mora = 7856.123
|
204
|
+
subject.valor_mora_formatado(10).must_equal "0000785612"
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
describe "#valor_desconto_formatado" do
|
210
|
+
context "com padrao de tamanho = 13 digitos" do
|
211
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
212
|
+
subject.valor_desconto = 7856.123
|
213
|
+
subject.valor_desconto_formatado.must_equal "0000000785612"
|
214
|
+
end
|
215
|
+
end
|
216
|
+
context "passando a quantidade de digitos" do
|
217
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
218
|
+
subject.valor_desconto = 7856.123
|
219
|
+
subject.valor_desconto_formatado(10).must_equal "0000785612"
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
describe "#valor_iof_formatado" do
|
225
|
+
context "com padrao de tamanho = 13 digitos" do
|
226
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
227
|
+
subject.valor_iof = 7856.123
|
228
|
+
subject.valor_iof_formatado.must_equal "0000000785612"
|
229
|
+
end
|
230
|
+
end
|
231
|
+
context "passando a quantidade de digitos" do
|
232
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
233
|
+
subject.valor_iof = 7856.123
|
234
|
+
subject.valor_iof_formatado(10).must_equal "0000785612"
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
describe "#valor_abatimento_formatado" do
|
240
|
+
context "com padrao de tamanho = 13 digitos" do
|
241
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
242
|
+
subject.valor_abatimento = 7856.123
|
243
|
+
subject.valor_abatimento_formatado.must_equal "0000000785612"
|
244
|
+
end
|
245
|
+
end
|
246
|
+
context "passando a quantidade de digitos" do
|
247
|
+
it "deve formatar o valor removendo separador de casas decimais e aredondando para 2 casas decimais" do
|
248
|
+
subject.valor_abatimento = 7856.123
|
249
|
+
subject.valor_abatimento_formatado(10).must_equal "0000785612"
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
describe "#tipo_documento_sacado" do
|
255
|
+
it "quand documento_sacado for nil" do
|
256
|
+
subject.documento_sacado = nil
|
257
|
+
subject.tipo_documento_sacado.must_equal '0'
|
258
|
+
end
|
259
|
+
context "com padrao de tamanho = 2" do
|
260
|
+
it "deve ser 02 (CPF) se for menor que 14 digitos e maior que 11" do
|
261
|
+
subject.documento_sacado = '123456789012'
|
262
|
+
subject.tipo_documento_sacado.must_equal '02'
|
263
|
+
end
|
264
|
+
it "deve ser 01 (CPF) se for igual a 11" do
|
265
|
+
subject.documento_sacado = '12345678901'
|
266
|
+
subject.tipo_documento_sacado.must_equal '01'
|
267
|
+
end
|
268
|
+
it "deve ser 01 (CPF) se for menor que 11" do
|
269
|
+
subject.documento_sacado = '1234567890'
|
270
|
+
subject.tipo_documento_sacado.must_equal '01'
|
271
|
+
end
|
272
|
+
it "deve ser 02 (CNPJ/CGC) se for igual a 14 digitos" do
|
273
|
+
subject.documento_sacado = '12345678901234'
|
274
|
+
subject.tipo_documento_sacado.must_equal '02'
|
275
|
+
end
|
276
|
+
it "deve ser 02 (CNPJ/CGC) se for maior a 14 digitos" do
|
277
|
+
subject.documento_sacado = '123456789012345'
|
278
|
+
subject.tipo_documento_sacado.must_equal '02'
|
279
|
+
end
|
280
|
+
end
|
281
|
+
context "passando um tamanho por parâmetro" do
|
282
|
+
it "deve ser 2 (CNPJ) se for menor que 14 digitos e maior que 11 com tamanho=1" do
|
283
|
+
subject.documento_sacado = '1234567890123'
|
284
|
+
subject.tipo_documento_sacado(1).must_equal '2'
|
285
|
+
end
|
286
|
+
it "deve ser 002 (CNPJ/CGC) se for igual a 14 digitos e tamanho = 3" do
|
287
|
+
subject.documento_sacado = '12345678901234'
|
288
|
+
subject.tipo_documento_sacado(3).must_equal '002'
|
289
|
+
end
|
290
|
+
it "deve ser 02 (CNPJ/CGC) se for maior a 14 digitos e tamanho = 2" do
|
291
|
+
subject.documento_sacado = '123456789012345'
|
292
|
+
subject.tipo_documento_sacado(2).must_equal '02'
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
describe "#tipo_documento_avalista" do
|
298
|
+
it "quand documento_avalista for nil" do
|
299
|
+
subject.documento_avalista = nil
|
300
|
+
subject.tipo_documento_avalista.must_equal '0'
|
301
|
+
end
|
302
|
+
context "com padrao de tamanho = 2" do
|
303
|
+
it "deve ser 02 (CNPJ) se for menor que 14 digitos e maior que 11" do
|
304
|
+
subject.documento_avalista = '1234567890123'
|
305
|
+
subject.tipo_documento_avalista.must_equal '02'
|
306
|
+
end
|
307
|
+
it "deve ser 01 (CPF) se for igual a 11" do
|
308
|
+
subject.documento_avalista = '12345678901'
|
309
|
+
subject.tipo_documento_avalista.must_equal '01'
|
310
|
+
end
|
311
|
+
it "deve ser 01 (CPF) se for menor que 11" do
|
312
|
+
subject.documento_avalista = '1234567890'
|
313
|
+
subject.tipo_documento_avalista.must_equal '01'
|
314
|
+
end
|
315
|
+
it "deve ser 02 (CNPJ/CGC) se for igual a 14 digitos" do
|
316
|
+
subject.documento_avalista = '12345678901234'
|
317
|
+
subject.tipo_documento_avalista.must_equal '02'
|
318
|
+
end
|
319
|
+
it "deve ser 02 (CNPJ/CGC) se for maior a 14 digitos" do
|
320
|
+
subject.documento_avalista = '123456789012345'
|
321
|
+
subject.tipo_documento_avalista.must_equal '02'
|
322
|
+
end
|
323
|
+
end
|
324
|
+
context "passando um tamanho por parâmetro" do
|
325
|
+
it "deve ser 2 (CNPJ) se for menor que 14 digitos e maior que 11 com tamanho=1" do
|
326
|
+
subject.documento_avalista = '1234567890123'
|
327
|
+
subject.tipo_documento_avalista(1).must_equal '2'
|
328
|
+
end
|
329
|
+
it "deve ser 002 (CNPJ/CGC) se for igual a 14 digitos e tamanho = 3" do
|
330
|
+
subject.documento_avalista = '12345678901234'
|
331
|
+
subject.tipo_documento_avalista(3).must_equal '002'
|
332
|
+
end
|
333
|
+
it "deve ser 02 (CNPJ/CGC) se for maior a 14 digitos e tamanho = 2" do
|
334
|
+
subject.documento_avalista = '123456789012345'
|
335
|
+
subject.tipo_documento_avalista(2).must_equal '02'
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
FactoryGirl.define do
|
4
|
+
factory :remessa_base, class: BrBoleto::Remessa::Base do
|
5
|
+
lotes { FactoryGirl.build(:remessa_lote) }
|
6
|
+
nome_empresa "Nome da empresa"
|
7
|
+
agencia "3069"
|
8
|
+
conta_corrente "123456"
|
9
|
+
digito_conta "5"
|
10
|
+
carteira "1"
|
11
|
+
sequencial_remessa 1
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
FactoryGirl.define do
|
4
|
+
factory :remessa_cnab240_base, class: BrBoleto::Remessa::Cnab240::Base do
|
5
|
+
lotes { FactoryGirl.build(:remessa_lote) }
|
6
|
+
nome_empresa "Nome da empresa"
|
7
|
+
agencia "3069"
|
8
|
+
conta_corrente "123456"
|
9
|
+
digito_conta "5"
|
10
|
+
carteira "1"
|
11
|
+
sequencial_remessa 1
|
12
|
+
documento_cedente '12345678901'
|
13
|
+
convenio '1'
|
14
|
+
emissao_boleto '1'
|
15
|
+
distribuicao_boleto '1'
|
16
|
+
especie_titulo '02'
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
FactoryGirl.define do
|
4
|
+
factory :remessa_cnab240_sicoob, class: BrBoleto::Remessa::Cnab240::Sicoob do
|
5
|
+
lotes { FactoryGirl.build(:remessa_lote) }
|
6
|
+
nome_empresa "Nome da empresa"
|
7
|
+
agencia "3069"
|
8
|
+
conta_corrente "5679"
|
9
|
+
digito_conta "5"
|
10
|
+
carteira "1"
|
11
|
+
sequencial_remessa 1
|
12
|
+
documento_cedente '12345678901'
|
13
|
+
convenio '1'
|
14
|
+
emissao_boleto '1'
|
15
|
+
distribuicao_boleto '1'
|
16
|
+
especie_titulo '02'
|
17
|
+
end
|
18
|
+
end
|