br_boleto 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +13 -0
  5. data/LICENSE +1 -1
  6. data/README.markdown +22 -7
  7. data/br_boleto.gemspec +9 -7
  8. data/lib/br_boleto/active_model_base.rb +28 -0
  9. data/lib/br_boleto/boleto/base.rb +666 -633
  10. data/lib/br_boleto/boleto/caixa.rb +257 -0
  11. data/lib/br_boleto/boleto/sicoob.rb +6 -18
  12. data/lib/br_boleto/helper/format_value.rb +18 -0
  13. data/lib/br_boleto/remessa/base.rb +1 -22
  14. data/lib/br_boleto/remessa/cnab240/base.rb +12 -9
  15. data/lib/br_boleto/remessa/cnab240/caixa.rb +201 -0
  16. data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +2 -2
  17. data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +10 -1
  18. data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +2 -2
  19. data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +2 -2
  20. data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +7 -0
  21. data/lib/br_boleto/remessa/cnab240/sicoob.rb +6 -6
  22. data/lib/br_boleto/remessa/lote.rb +1 -21
  23. data/lib/br_boleto/remessa/pagamento.rb +22 -36
  24. data/lib/br_boleto/retorno/base.rb +31 -0
  25. data/lib/br_boleto/retorno/cnab240/base.rb +101 -0
  26. data/lib/br_boleto/retorno/cnab240/caixa.rb +30 -0
  27. data/lib/br_boleto/retorno/cnab240/sicoob.rb +35 -0
  28. data/lib/br_boleto/retorno/pagamento.rb +242 -0
  29. data/lib/br_boleto/version.rb +2 -2
  30. data/lib/br_boleto.rb +23 -11
  31. data/test/br_boleto/boleto/base_test.rb +6 -6
  32. data/test/br_boleto/boleto/caixa_test.rb +191 -0
  33. data/test/br_boleto/boleto/sicoob_test.rb +18 -11
  34. data/test/br_boleto/remessa/cnab240/base_test.rb +5 -5
  35. data/test/br_boleto/remessa/cnab240/caixa_test.rb +271 -0
  36. data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +2 -2
  37. data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +1 -1
  38. data/test/br_boleto/remessa/cnab240/sicoob_test.rb +27 -27
  39. data/test/br_boleto/remessa/pagamento_test.rb +12 -2
  40. data/test/br_boleto/retorno/cnab240/base_test.rb +217 -0
  41. data/test/br_boleto/retorno/cnab240/caixa_test.rb +217 -0
  42. data/test/br_boleto/retorno/cnab240/sicoob_test.rb +217 -0
  43. data/test/br_boleto/retorno/pagamento_test.rb +179 -0
  44. data/test/factories/boleto/boleto_caixa.rb +25 -0
  45. data/test/factories/remessa/cnab240/caixa.rb +14 -0
  46. data/test/factories/remessa/pagamento.rb +1 -0
  47. data/test/factories/retorno/pagamento.rb +6 -0
  48. data/test/files/retorno/cnab240/caixa.ret +14 -0
  49. data/test/files/retorno/cnab240/padrao240.ret +14 -0
  50. metadata +51 -6
@@ -0,0 +1,217 @@
1
+ require 'test_helper'
2
+
3
+ describe BrBoleto::Retorno::Cnab240::Sicoob do
4
+ subject { BrBoleto::Retorno::Cnab240::Sicoob.new(file) }
5
+ let(:file) { File.join(BrBoleto.root, "test", "files", "retorno", "cnab240", "padrao240.ret") }
6
+
7
+ it "Deve ler o código do banco" do
8
+ subject.codigo_banco.must_equal '756'
9
+ end
10
+
11
+ it "Deve carregar 5 pagamentos" do
12
+ subject.pagamentos.size.must_equal 5
13
+ end
14
+
15
+ describe "deve setar as informações corretas para os pagamentos" do
16
+ it "valores para o pagamento 1" do
17
+ pagamento = subject.pagamentos[0]
18
+ pagamento.modalidade.must_equal '01'
19
+ pagamento.agencia_com_dv.must_equal "030690"
20
+ pagamento.agencia_sem_dv.must_equal "03069"
21
+ pagamento.numero_conta_com_dv.must_equal "0000000777778"
22
+ pagamento.numero_conta_sem_dv.must_equal "000000077777"
23
+ pagamento.dv_conta_e_agencia.must_equal "0"
24
+ pagamento.nosso_numero.must_equal "0000000330"
25
+ pagamento.carteira.must_equal "1"
26
+ pagamento.numero_codumento.must_equal "000000000000330"
27
+ pagamento.data_vencimento.must_equal Date.parse('03/05/2016')
28
+ pagamento.valor_titulo.must_equal 129.39
29
+ pagamento.banco_recebedor.must_equal "756"
30
+ pagamento.agencia_recebedora_com_dv.must_equal "030690"
31
+ pagamento.identificacao_titulo_empresa.must_equal ""
32
+ pagamento.codigo_moeda.must_equal "09"
33
+ pagamento.sacado_tipo_documento.must_equal "2"
34
+ pagamento.sacado_documento.must_equal "111111111111111"
35
+ pagamento.sacado_nome.must_equal "NOME DO CLIENTE 1"
36
+ pagamento.numero_contrato.must_equal "0000000000"
37
+ pagamento.valor_tarifa.must_equal 2.69
38
+ pagamento.motivo_ocorrencia.must_equal "0000000004"
39
+ pagamento.valor_juros_multa.must_equal 0.0
40
+ pagamento.valor_desconto.must_equal 0.0
41
+ pagamento.valor_abatimento.must_equal 0.0
42
+ pagamento.valor_iof.must_equal 0.0
43
+ pagamento.valor_pago.must_equal 129.39
44
+ pagamento.valor_liquido.must_equal 129.39
45
+ pagamento.valor_coutras_despesas.must_equal 0.0
46
+ pagamento.valor_coutros_creditos.must_equal 0.0
47
+ pagamento.data_ocorrencia.must_equal Date.parse('02/05/2016')
48
+ pagamento.data_credito.must_equal Date.parse('03/05/2016')
49
+ pagamento.codigo_ocorrencia_sacado.must_equal ""
50
+ pagamento.data_ocorrencia_sacado.must_equal nil
51
+ pagamento.valor_ocorrencia_sacado.must_equal 0.0
52
+ pagamento.complemento_ocorrencia_sacado.must_equal ""
53
+ pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
54
+ pagamento.nosso_numero_banco_correspondente.must_equal ""
55
+ end
56
+ it "valores para o pagamento 2" do
57
+ pagamento = subject.pagamentos[1]
58
+ pagamento.modalidade.must_equal '02'
59
+ pagamento.agencia_com_dv.must_equal "030690"
60
+ pagamento.agencia_sem_dv.must_equal "03069"
61
+ pagamento.numero_conta_com_dv.must_equal "0000000777778"
62
+ pagamento.numero_conta_sem_dv.must_equal "000000077777"
63
+ pagamento.dv_conta_e_agencia.must_equal "0"
64
+ pagamento.nosso_numero.must_equal "0000000348"
65
+ pagamento.carteira.must_equal "1"
66
+ pagamento.numero_codumento.must_equal "000000000000348"
67
+ pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
68
+ pagamento.valor_titulo.must_equal 29.0
69
+ pagamento.banco_recebedor.must_equal "756"
70
+ pagamento.agencia_recebedora_com_dv.must_equal "030690"
71
+ pagamento.identificacao_titulo_empresa.must_equal ""
72
+ pagamento.codigo_moeda.must_equal "09"
73
+ pagamento.sacado_tipo_documento.must_equal "2"
74
+ pagamento.sacado_documento.must_equal "222222222222222"
75
+ pagamento.sacado_nome.must_equal "NOME DO CLIENTE 2"
76
+ pagamento.numero_contrato.must_equal "0000000000"
77
+ pagamento.valor_tarifa.must_equal 2.69
78
+ pagamento.motivo_ocorrencia.must_equal "0000000004"
79
+ pagamento.valor_juros_multa.must_equal 0.0
80
+ pagamento.valor_desconto.must_equal 0.0
81
+ pagamento.valor_abatimento.must_equal 0.0
82
+ pagamento.valor_iof.must_equal 0.0
83
+ pagamento.valor_pago.must_equal 29.0
84
+ pagamento.valor_liquido.must_equal 29.0
85
+ pagamento.valor_coutras_despesas.must_equal 0.0
86
+ pagamento.valor_coutros_creditos.must_equal 0.0
87
+ pagamento.data_ocorrencia.must_equal Date.parse('05/05/2016')
88
+ pagamento.data_credito.must_equal Date.parse('06/05/2016')
89
+ pagamento.codigo_ocorrencia_sacado.must_equal ""
90
+ pagamento.data_ocorrencia_sacado.must_equal nil
91
+ pagamento.valor_ocorrencia_sacado.must_equal 0.0
92
+ pagamento.complemento_ocorrencia_sacado.must_equal ""
93
+ pagamento.codigo_ocorrencia_banco_correspondente.must_equal "304"
94
+ pagamento.nosso_numero_banco_correspondente.must_equal ""
95
+ end
96
+ it "valores para o pagamento 3" do
97
+ pagamento = subject.pagamentos[2]
98
+ pagamento.modalidade.must_equal '01'
99
+ pagamento.agencia_com_dv.must_equal "030690"
100
+ pagamento.agencia_sem_dv.must_equal "03069"
101
+ pagamento.numero_conta_com_dv.must_equal "0000000777778"
102
+ pagamento.numero_conta_sem_dv.must_equal "000000077777"
103
+ pagamento.dv_conta_e_agencia.must_equal "0"
104
+ pagamento.nosso_numero.must_equal "0000000355"
105
+ pagamento.carteira.must_equal "1"
106
+ pagamento.numero_codumento.must_equal "000000000000355"
107
+ pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
108
+ pagamento.valor_titulo.must_equal 89.1
109
+ pagamento.banco_recebedor.must_equal "756"
110
+ pagamento.agencia_recebedora_com_dv.must_equal "030690"
111
+ pagamento.identificacao_titulo_empresa.must_equal ""
112
+ pagamento.codigo_moeda.must_equal "09"
113
+ pagamento.sacado_tipo_documento.must_equal "2"
114
+ pagamento.sacado_documento.must_equal "333333333333333"
115
+ pagamento.sacado_nome.must_equal "NOME DO CLIENTE 3"
116
+ pagamento.numero_contrato.must_equal "0000000000"
117
+ pagamento.valor_tarifa.must_equal 2.69
118
+ pagamento.motivo_ocorrencia.must_equal "0000000004"
119
+ pagamento.valor_juros_multa.must_equal 0.0
120
+ pagamento.valor_desconto.must_equal 0.0
121
+ pagamento.valor_abatimento.must_equal 0.0
122
+ pagamento.valor_iof.must_equal 0.0
123
+ pagamento.valor_pago.must_equal 89.1
124
+ pagamento.valor_liquido.must_equal 89.1
125
+ pagamento.valor_coutras_despesas.must_equal 0.0
126
+ pagamento.valor_coutros_creditos.must_equal 0.0
127
+ pagamento.data_ocorrencia.must_equal Date.parse('05/05/2016')
128
+ pagamento.data_credito.must_equal Date.parse('06/05/2016')
129
+ pagamento.codigo_ocorrencia_sacado.must_equal ""
130
+ pagamento.data_ocorrencia_sacado.must_equal nil
131
+ pagamento.valor_ocorrencia_sacado.must_equal 0.0
132
+ pagamento.complemento_ocorrencia_sacado.must_equal ""
133
+ pagamento.codigo_ocorrencia_banco_correspondente.must_equal "100"
134
+ pagamento.nosso_numero_banco_correspondente.must_equal ""
135
+ end
136
+ it "valores para o pagamento 4" do
137
+ pagamento = subject.pagamentos[3]
138
+ pagamento.modalidade.must_equal '01'
139
+ pagamento.agencia_com_dv.must_equal "030690"
140
+ pagamento.agencia_sem_dv.must_equal "03069"
141
+ pagamento.numero_conta_com_dv.must_equal "0000000777778"
142
+ pagamento.numero_conta_sem_dv.must_equal "000000077777"
143
+ pagamento.dv_conta_e_agencia.must_equal "0"
144
+ pagamento.nosso_numero.must_equal "0000000362"
145
+ pagamento.carteira.must_equal "1"
146
+ pagamento.numero_codumento.must_equal "000000000000362"
147
+ pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
148
+ pagamento.valor_titulo.must_equal 29.0
149
+ pagamento.banco_recebedor.must_equal "104"
150
+ pagamento.agencia_recebedora_com_dv.must_equal "004140"
151
+ pagamento.identificacao_titulo_empresa.must_equal ""
152
+ pagamento.codigo_moeda.must_equal "09"
153
+ pagamento.sacado_tipo_documento.must_equal "1"
154
+ pagamento.sacado_documento.must_equal "444444444444444"
155
+ pagamento.sacado_nome.must_equal "NOME DO CLIENTE 4"
156
+ pagamento.numero_contrato.must_equal "0000000000"
157
+ pagamento.valor_tarifa.must_equal 2.69
158
+ pagamento.motivo_ocorrencia.must_equal "0000000004"
159
+ pagamento.valor_juros_multa.must_equal 0.0
160
+ pagamento.valor_desconto.must_equal 0.0
161
+ pagamento.valor_abatimento.must_equal 0.0
162
+ pagamento.valor_iof.must_equal 0.0
163
+ pagamento.valor_pago.must_equal 29.0
164
+ pagamento.valor_liquido.must_equal 29.0
165
+ pagamento.valor_coutras_despesas.must_equal 0.0
166
+ pagamento.valor_coutros_creditos.must_equal 0.0
167
+ pagamento.data_ocorrencia.must_equal Date.parse('06/05/2016')
168
+ pagamento.data_credito.must_equal nil
169
+ pagamento.codigo_ocorrencia_sacado.must_equal ""
170
+ pagamento.data_ocorrencia_sacado.must_equal nil
171
+ pagamento.valor_ocorrencia_sacado.must_equal 0.0
172
+ pagamento.complemento_ocorrencia_sacado.must_equal ""
173
+ pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
174
+ pagamento.nosso_numero_banco_correspondente.must_equal ""
175
+ end
176
+ it "valores para o pagamento 5" do
177
+ pagamento = subject.pagamentos[4]
178
+ pagamento.modalidade.must_equal '01'
179
+ pagamento.agencia_com_dv.must_equal "030690"
180
+ pagamento.agencia_sem_dv.must_equal "03069"
181
+ pagamento.numero_conta_com_dv.must_equal "0000000777778"
182
+ pagamento.numero_conta_sem_dv.must_equal "000000077777"
183
+ pagamento.dv_conta_e_agencia.must_equal "0"
184
+ pagamento.nosso_numero.must_equal "0000000362"
185
+ pagamento.carteira.must_equal "1"
186
+ pagamento.numero_codumento.must_equal "000000000000362"
187
+ pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
188
+ pagamento.valor_titulo.must_equal 47.37
189
+ pagamento.banco_recebedor.must_equal "104"
190
+ pagamento.agencia_recebedora_com_dv.must_equal "004140"
191
+ pagamento.identificacao_titulo_empresa.must_equal ""
192
+ pagamento.codigo_moeda.must_equal "09"
193
+ pagamento.sacado_tipo_documento.must_equal "1"
194
+ pagamento.sacado_documento.must_equal "555555555555555"
195
+ pagamento.sacado_nome.must_equal "NOME DO CLIENTE 5"
196
+ pagamento.numero_contrato.must_equal "0000000000"
197
+ pagamento.valor_tarifa.must_equal 2.69
198
+ pagamento.motivo_ocorrencia.must_equal "0000000004"
199
+ pagamento.valor_juros_multa.must_equal 0.0
200
+ pagamento.valor_desconto.must_equal 0.0
201
+ pagamento.valor_abatimento.must_equal 0.0
202
+ pagamento.valor_iof.must_equal 0.0
203
+ pagamento.valor_pago.must_equal 47.37
204
+ pagamento.valor_liquido.must_equal 47.37
205
+ pagamento.valor_coutras_despesas.must_equal 0.0
206
+ pagamento.valor_coutros_creditos.must_equal 0.0
207
+ pagamento.data_ocorrencia.must_equal Date.parse('06/05/2016')
208
+ pagamento.data_credito.must_equal nil
209
+ pagamento.codigo_ocorrencia_sacado.must_equal ""
210
+ pagamento.data_ocorrencia_sacado.must_equal nil
211
+ pagamento.valor_ocorrencia_sacado.must_equal 0.0
212
+ pagamento.complemento_ocorrencia_sacado.must_equal ""
213
+ pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
214
+ pagamento.nosso_numero_banco_correspondente.must_equal ""
215
+ end
216
+ end
217
+ end
@@ -0,0 +1,179 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+
4
+ describe BrBoleto::Retorno::Pagamento do
5
+
6
+ subject { FactoryGirl.build(:retorno_pagamento) }
7
+
8
+ describe "atributos que devem ser convertidos para data quando o valor for setado" do
9
+ describe "#data_vencimento" do
10
+ it "deve converter para uma data se a string estiver no formato DDMMYYYY" do
11
+ subject.data_vencimento = '12041991'
12
+ subject.data_vencimento.must_equal Date.parse('12/04/1991')
13
+ end
14
+ it "Se for uma data inválida deve setar o valor nil" do
15
+ subject.data_vencimento = '99999999'
16
+ subject.data_vencimento.must_be_nil
17
+ end
18
+ it "Deve aceitar o valor se for do tipo Date" do
19
+ subject.data_vencimento = Date.parse('05/07/2014')
20
+ subject.data_vencimento.must_equal Date.parse('05/07/2014')
21
+ end
22
+ end
23
+ describe "#data_ocorrencia" do
24
+ it "deve converter para uma data se a string estiver no formato DDMMYYYY" do
25
+ subject.data_ocorrencia = '12041991'
26
+ subject.data_ocorrencia.must_equal Date.parse('12/04/1991')
27
+ end
28
+ it "Se for uma data inválida deve setar o valor nil" do
29
+ subject.data_ocorrencia = '99999999'
30
+ subject.data_ocorrencia.must_be_nil
31
+ end
32
+ it "Deve aceitar o valor se for do tipo Date" do
33
+ subject.data_ocorrencia = Date.parse('05/07/2014')
34
+ subject.data_ocorrencia.must_equal Date.parse('05/07/2014')
35
+ end
36
+ end
37
+ describe "#data_credito" do
38
+ it "deve converter para uma data se a string estiver no formato DDMMYYYY" do
39
+ subject.data_credito = '12041991'
40
+ subject.data_credito.must_equal Date.parse('12/04/1991')
41
+ end
42
+ it "Se for uma data inválida deve setar o valor nil" do
43
+ subject.data_credito = '99999999'
44
+ subject.data_credito.must_be_nil
45
+ end
46
+ it "Deve aceitar o valor se for do tipo Date" do
47
+ subject.data_credito = Date.parse('05/07/2014')
48
+ subject.data_credito.must_equal Date.parse('05/07/2014')
49
+ end
50
+ end
51
+ describe "#data_ocorrencia_sacado" do
52
+ it "deve converter para uma data se a string estiver no formato DDMMYYYY" do
53
+ subject.data_ocorrencia_sacado = '12041991'
54
+ subject.data_ocorrencia_sacado.must_equal Date.parse('12/04/1991')
55
+ end
56
+ it "Se for uma data inválida deve setar o valor nil" do
57
+ subject.data_ocorrencia_sacado = '99999999'
58
+ subject.data_ocorrencia_sacado.must_be_nil
59
+ end
60
+ it "Deve aceitar o valor se for do tipo Date" do
61
+ subject.data_ocorrencia_sacado = Date.parse('05/07/2014')
62
+ subject.data_ocorrencia_sacado.must_equal Date.parse('05/07/2014')
63
+ end
64
+ end
65
+ end
66
+
67
+ describe "atributos que devem ser convertidos para Float quando o valor for setado" do
68
+ describe "#valor_titulo" do
69
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
70
+ subject.valor_titulo = '00087944'
71
+ subject.valor_titulo.must_equal 879.44
72
+ end
73
+ it "se o valor setado for um numero deve mante-lo" do
74
+ subject.valor_titulo = 7_745.67
75
+ subject.valor_titulo.must_equal 7_745.67
76
+ end
77
+ end
78
+ describe "#valor_tarifa" do
79
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
80
+ subject.valor_tarifa = '00087944'
81
+ subject.valor_tarifa.must_equal 879.44
82
+ end
83
+ it "se o valor setado for um numero deve mante-lo" do
84
+ subject.valor_titulo = 7_745.67
85
+ subject.valor_titulo.must_equal 7_745.67
86
+ end
87
+ end
88
+ describe "#valor_juros_multa" do
89
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
90
+ subject.valor_juros_multa = '00087944'
91
+ subject.valor_juros_multa.must_equal 879.44
92
+ end
93
+ it "se o valor setado for um numero deve mante-lo" do
94
+ subject.valor_titulo = 7_745.67
95
+ subject.valor_titulo.must_equal 7_745.67
96
+ end
97
+ end
98
+ describe "#valor_desconto" do
99
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
100
+ subject.valor_desconto = '00087944'
101
+ subject.valor_desconto.must_equal 879.44
102
+ end
103
+ it "se o valor setado for um numero deve mante-lo" do
104
+ subject.valor_titulo = 7_745.67
105
+ subject.valor_titulo.must_equal 7_745.67
106
+ end
107
+ end
108
+ describe "#valor_abatimento" do
109
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
110
+ subject.valor_abatimento = '00087944'
111
+ subject.valor_abatimento.must_equal 879.44
112
+ end
113
+ it "se o valor setado for um numero deve mante-lo" do
114
+ subject.valor_titulo = 7_745.67
115
+ subject.valor_titulo.must_equal 7_745.67
116
+ end
117
+ end
118
+ describe "#valor_iof" do
119
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
120
+ subject.valor_iof = '00087944'
121
+ subject.valor_iof.must_equal 879.44
122
+ end
123
+ it "se o valor setado for um numero deve mante-lo" do
124
+ subject.valor_titulo = 7_745.67
125
+ subject.valor_titulo.must_equal 7_745.67
126
+ end
127
+ end
128
+ describe "#valor_pago" do
129
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
130
+ subject.valor_pago = '00087944'
131
+ subject.valor_pago.must_equal 879.44
132
+ end
133
+ it "se o valor setado for um numero deve mante-lo" do
134
+ subject.valor_titulo = 7_745.67
135
+ subject.valor_titulo.must_equal 7_745.67
136
+ end
137
+ end
138
+ describe "#valor_liquido" do
139
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
140
+ subject.valor_liquido = '00087944'
141
+ subject.valor_liquido.must_equal 879.44
142
+ end
143
+ it "se o valor setado for um numero deve mante-lo" do
144
+ subject.valor_titulo = 7_745.67
145
+ subject.valor_titulo.must_equal 7_745.67
146
+ end
147
+ end
148
+ describe "#valor_coutras_despesas" do
149
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
150
+ subject.valor_coutras_despesas = '00087944'
151
+ subject.valor_coutras_despesas.must_equal 879.44
152
+ end
153
+ it "se o valor setado for um numero deve mante-lo" do
154
+ subject.valor_titulo = 7_745.67
155
+ subject.valor_titulo.must_equal 7_745.67
156
+ end
157
+ end
158
+ describe "#valor_coutros_creditos" do
159
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
160
+ subject.valor_coutros_creditos = '00087944'
161
+ subject.valor_coutros_creditos.must_equal 879.44
162
+ end
163
+ it "se o valor setado for um numero deve mante-lo" do
164
+ subject.valor_titulo = 7_745.67
165
+ subject.valor_titulo.must_equal 7_745.67
166
+ end
167
+ end
168
+ describe "#valor_ocorrencia_sacado" do
169
+ it "deve converter o valor string para float mantendo os 2 ultimos characteres com decimais" do
170
+ subject.valor_ocorrencia_sacado = '00087944'
171
+ subject.valor_ocorrencia_sacado.must_equal 879.44
172
+ end
173
+ it "se o valor setado for um numero deve mante-lo" do
174
+ subject.valor_titulo = 7_745.67
175
+ subject.valor_titulo.must_equal 7_745.67
176
+ end
177
+ end
178
+ end
179
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: UTF-8
2
+
3
+ FactoryGirl.define do
4
+ factory :boleto_caixa, class: BrBoleto::Boleto::Caixa do
5
+ cedente 'Fabrica de Materiais LTDA'
6
+ documento_cedente '200.874.0006-87'
7
+ endereco_cedente 'Rua para Testes - Belo Horizonte / MG'
8
+ sacado 'Cleber Machado dos Santos'
9
+ documento_sacado '52166727964'
10
+ endereco_sacado 'Rua Teste do Seu Cliente'
11
+ numero_documento '458'
12
+ data_vencimento { Date.tomorrow }
13
+ data_documento { Date.current }
14
+ agencia "2391"
15
+ codigo_cedente '4433'
16
+ valor_documento 750.27
17
+ carteira '14'
18
+ instrucoes1 'instrucoes1'
19
+ instrucoes2 'instrucoes2'
20
+ instrucoes3 'instrucoes3'
21
+ instrucoes4 'instrucoes4'
22
+ instrucoes5 'instrucoes5'
23
+ instrucoes6 'instrucoes6'
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ # encoding: UTF-8
2
+
3
+ FactoryGirl.define do
4
+ factory :remessa_cnab240_caixa, class: BrBoleto::Remessa::Cnab240::Caixa do
5
+ lotes { FactoryGirl.build(:remessa_lote) }
6
+ nome_empresa "Nome da empresa"
7
+ agencia "3069"
8
+ carteira '14'
9
+ sequencial_remessa 1
10
+ documento_cedente '93.671.653/0001-83'
11
+ convenio '31400'
12
+ modalidade_carteira '14'
13
+ end
14
+ end
@@ -3,6 +3,7 @@
3
3
  FactoryGirl.define do
4
4
  factory :remessa_pagamento, class: BrBoleto::Remessa::Pagamento do
5
5
  nosso_numero "123456"
6
+ numero_documento "977897"
6
7
  data_vencimento { Date.tomorrow }
7
8
  valor_documento 100.123
8
9
  documento_sacado "12345678901"
@@ -0,0 +1,6 @@
1
+ # encoding: UTF-8
2
+
3
+ FactoryGirl.define do
4
+ factory :retorno_pagamento, class: BrBoleto::Retorno::Pagamento do
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ 10400000 299999666655555 03069000000007777780NOME DA EMPRESA SACADO LTDA NOME DO BANCO 20905201608511600000108500000
2
+ 10400011T01 043 2099999666655555 306900000203069000000007777780NOME DA EMPRESA SACADO LTDA 000000000905201600000000
3
+ 1040001300001T 06030690CEDEN1EC1BC1EXC1M1NOSSONUMERO00010XNUMEROCOD01EXCL03052016000000000012939104030690 092111111111111111NOME DO CLIENTE 1 00000000000000000000002690000000004
4
+ 1040001300002U 060000000000000000000000000000000000000000000000000000000000000000000000129390000000000129390000000000000000000000000000000205201603052016 00000000000000000000000 75600000000000000000000
5
+ 1040001300003T 06030690CEDEN2EC2BC1EXC2M2NOSSONUMERO00020XNUMEROCOD02EXCL06052016000000000002900104030690 092222222222222222NOME DO CLIENTE 2 00000000000000000000002690000000004
6
+ 1040001300004U 060000000000000000000000000000000000000000000000000000000000000000000000029000000000000029000000000000000000000000000000000505201606052016 00000000000000000000000 30400000000000000000000
7
+ 1040001300005T 06030690CEDEN3EC3BC1EXC3M3NOSSONUMERO00030XNUMEROCOD03EXCL06052016000000000008910104030690 092333333333333333NOME DO CLIENTE 3 00000000000000000000002690000000004
8
+ 1040001300006U 060000000000000000000000000000000000000000000000000000000000000000000000089100000000000089100000000000000000000000000000000505201606052016 00000000000000000000000 10000000000000000000000
9
+ 1040001300007T 06030690CEDEN4EC4BC1EXC4M4NOSSONUMERO00040XNUMEROCOD04EXCL06052016000000000002900104004140 091444444444444444NOME DO CLIENTE 4 00000000000000000000002690000000004
10
+ 1040001300008U 060000000000000000000000000000000000000000000000000000000000000000000000029000000000000029000000000000000000000000000000000605201600000000 00000000000000000000000 10400000000000000000000
11
+ 1040001300009T 06030690CEDEN5EC5BC1EXC5M5NOSSONUMERO00050XNUMEROCOD05EXCL06052016000000000004737104004140 091555555555555555NOME DO CLIENTE 5 00000000000000000000002690000000004
12
+ 1040001300010U 060000000000000000000000000000000000000000000000000000000000000000000000047370000000000047370000000000000000000000000000000605201600000000 00000000000000000000000 10400000000000000000000
13
+ 10400015 00001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
14
+ 10499999 000001000012000000
@@ -0,0 +1,14 @@
1
+ 75600000 299999666655555 03069000000007777780NOME DA EMPRESA SACADO LTDA NOME DO BANCO 20905201608511600000108500000
2
+ 75600011T01 043 2099999666655555 306900000203069000000007777780NOME DA EMPRESA SACADO LTDA 000000000905201600000000
3
+ 7560001300001T 0603069000000007777780000000033001014 100000000000033003052016000000000012939756030690 092111111111111111NOME DO CLIENTE 1 00000000000000000000002690000000004
4
+ 7560001300002U 060000000000000000000000000000000000000000000000000000000000000000000000129390000000000129390000000000000000000000000000000205201603052016 00000000000000000000000 75600000000000000000000
5
+ 7560001300003T 0603069000000007777780000000034801024 100000000000034806052016000000000002900756030690 092222222222222222NOME DO CLIENTE 2 00000000000000000000002690000000004
6
+ 7560001300004U 060000000000000000000000000000000000000000000000000000000000000000000000029000000000000029000000000000000000000000000000000505201606052016 00000000000000000000000 30400000000000000000000
7
+ 7560001300005T 0603069000000007777780000000035501014 100000000000035506052016000000000008910756030690 092333333333333333NOME DO CLIENTE 3 00000000000000000000002690000000004
8
+ 7560001300006U 060000000000000000000000000000000000000000000000000000000000000000000000089100000000000089100000000000000000000000000000000505201606052016 00000000000000000000000 10000000000000000000000
9
+ 7560001300007T 0603069000000007777780000000036201014 100000000000036206052016000000000002900104004140 091444444444444444NOME DO CLIENTE 4 00000000000000000000002690000000004
10
+ 7560001300008U 060000000000000000000000000000000000000000000000000000000000000000000000029000000000000029000000000000000000000000000000000605201600000000 00000000000000000000000 75600000000000000000000
11
+ 7560001300009T 0603069000000007777780000000036201014 100000000000036206052016000000000004737104004140 091555555555555555NOME DO CLIENTE 5 00000000000000000000002690000000004
12
+ 7560001300010U 060000000000000000000000000000000000000000000000000000000000000000000000047370000000000047370000000000000000000000000000000605201600000000 00000000000000000000000 75600000000000000000000
13
+ 75600015 00001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
14
+ 75699999 000001000012000000