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.
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,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
@@ -1,7 +1,7 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  FactoryGirl.define do
4
- factory :core_boleto, class: BrBoleto::Core::Boleto do
4
+ factory :boleto_base, class: BrBoleto::Boleto::Base do
5
5
  numero_documento '191075'
6
6
  valor_documento 101.99
7
7
  data_vencimento Date.new(2015, 07, 10)
@@ -1,7 +1,7 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  FactoryGirl.define do
4
- factory :boleto_sicoob, class: BrBoleto::Core::Sicoob do
4
+ factory :boleto_sicoob, class: BrBoleto::Boleto::Sicoob do
5
5
  agencia 95
6
6
  codigo_cedente 6532
7
7
  numero_documento 1101
@@ -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