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,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