brcobranca 2.0.5 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +24 -0
  3. data/PostInstall.txt +4 -0
  4. data/README.rdoc +4 -4
  5. data/Rakefile +9 -6
  6. data/brcobranca.gemspec +9 -9
  7. data/lib/brcobranca/arquivos/logos/banespa.jpg +0 -0
  8. data/lib/brcobranca/boleto/banco_banespa.rb +85 -0
  9. data/lib/brcobranca/boleto/banco_bradesco.rb +14 -1
  10. data/lib/brcobranca/boleto/banco_brasil.rb +18 -9
  11. data/lib/brcobranca/boleto/banco_hsbc.rb +22 -8
  12. data/lib/brcobranca/boleto/banco_itau.rb +20 -10
  13. data/lib/brcobranca/boleto/banco_real.rb +16 -2
  14. data/lib/brcobranca/boleto/banco_unibanco.rb +19 -5
  15. data/lib/brcobranca/boleto/base.rb +21 -15
  16. data/lib/brcobranca/boleto/template/rghost.rb +18 -16
  17. data/lib/brcobranca/boleto/template/util.rb +2 -0
  18. data/lib/brcobranca/core_ext.rb +57 -47
  19. data/lib/brcobranca/currency.rb +7 -10
  20. data/lib/brcobranca.rb +10 -2
  21. data/spec/arquivos/CBR64310.RET +28 -0
  22. data/spec/brcobranca/banco_banespa_spec.rb +195 -0
  23. data/spec/brcobranca/banco_bradesco_spec.rb +179 -0
  24. data/spec/brcobranca/banco_brasil_spec.rb +353 -0
  25. data/spec/brcobranca/banco_hsbc_spec.rb +216 -0
  26. data/spec/brcobranca/banco_itau_spec.rb +202 -0
  27. data/spec/brcobranca/banco_real_spec.rb +145 -0
  28. data/spec/brcobranca/banco_unibanco_spec.rb +193 -0
  29. data/spec/brcobranca/base_spec.rb +240 -0
  30. data/spec/brcobranca/core_ext_spec.rb +275 -0
  31. data/spec/brcobranca/currency_spec.rb +81 -0
  32. data/spec/brcobranca/retorno_cbr643_spec.rb +69 -0
  33. data/spec/brcobranca/rghost_spec.rb +36 -0
  34. data/spec/brcobranca/template/rghost_spec.rb +65 -0
  35. data/spec/brcobranca/template/util_spec.rb +42 -0
  36. data/spec/brcobranca_spec.rb +8 -0
  37. data/spec/rcov.opts +2 -0
  38. data/spec/spec.opts +6 -0
  39. data/spec/spec_helper.rb +10 -0
  40. data/tasks/rcov.rake +12 -0
  41. data/tasks/rspec.rake +21 -0
  42. metadata +32 -18
  43. data/test/test_banco_bradesco.rb +0 -87
  44. data/test/test_banco_brasil.rb +0 -276
  45. data/test/test_banco_hsbc.rb +0 -81
  46. data/test/test_banco_itau.rb +0 -103
  47. data/test/test_banco_real.rb +0 -112
  48. data/test/test_banco_unibanco.rb +0 -92
  49. data/test/test_base.rb +0 -162
  50. data/test/test_core_ext.rb +0 -227
  51. data/test/test_currency.rb +0 -51
  52. data/test/test_helper.rb +0 -5
  53. data/test/test_retorno_cbr643.rb +0 -66
  54. data/test/test_rghost.rb +0 -49
@@ -0,0 +1,216 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe BancoHsbc do
4
+
5
+ before(:each) do
6
+ @valid_attributes = {
7
+ :especie_documento => "DM",
8
+ :moeda => "9",
9
+ :data_documento => Date.today,
10
+ :dias_vencimento => 1,
11
+ :aceite => "S",
12
+ :quantidade => 1,
13
+ :valor => 0.0,
14
+ :local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO",
15
+ :cedente => "Kivanio Barbosa",
16
+ :documento_cedente => "12345678912",
17
+ :sacado => "Claudio Pozzebom",
18
+ :sacado_documento => "12345678900",
19
+ :agencia => "4042",
20
+ :conta_corrente => "61900",
21
+ :convenio => 12387989,
22
+ :numero_documento => "777700168"
23
+ }
24
+ end
25
+
26
+
27
+ it "should create a new default instance" do
28
+ boleto_novo = BancoHsbc.new
29
+ boleto_novo.banco.should eql("399")
30
+ boleto_novo.especie_documento.should eql("DM")
31
+ boleto_novo.especie.should eql("R$")
32
+ boleto_novo.moeda.should eql("9")
33
+ boleto_novo.data_documento.should eql(Date.today)
34
+ boleto_novo.dias_vencimento.should eql(1)
35
+ boleto_novo.data_vencimento.should eql(Date.today + 1)
36
+ boleto_novo.aceite.should eql("S")
37
+ boleto_novo.quantidade.should eql(1)
38
+ boleto_novo.valor.should eql(0.0)
39
+ boleto_novo.valor_documento.should eql(0.0)
40
+ boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
41
+ boleto_novo.carteira.should eql("CNR")
42
+ boleto_novo.should be_instance_of(BancoHsbc)
43
+ end
44
+
45
+ it "should create a new instance given valid attributes" do
46
+ boleto_novo = BancoHsbc.new(@valid_attributes)
47
+ boleto_novo.banco.should eql("399")
48
+ boleto_novo.especie_documento.should eql("DM")
49
+ boleto_novo.especie.should eql("R$")
50
+ boleto_novo.moeda.should eql("9")
51
+ boleto_novo.data_documento.should eql(Date.today)
52
+ boleto_novo.dias_vencimento.should eql(1)
53
+ boleto_novo.data_vencimento.should eql(Date.today + 1)
54
+ boleto_novo.aceite.should eql("S")
55
+ boleto_novo.quantidade.should eql(1)
56
+ boleto_novo.valor.should eql(0.0)
57
+ boleto_novo.valor_documento.should eql(0.0)
58
+ boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
59
+ boleto_novo.cedente.should eql("Kivanio Barbosa")
60
+ boleto_novo.documento_cedente.should eql("12345678912")
61
+ boleto_novo.sacado.should eql("Claudio Pozzebom")
62
+ boleto_novo.sacado_documento.should eql("12345678900")
63
+ boleto_novo.conta_corrente.should eql("61900")
64
+ boleto_novo.agencia.should eql("4042")
65
+ boleto_novo.convenio.should eql(12387989)
66
+ boleto_novo.numero_documento.should eql("777700168")
67
+ boleto_novo.carteira.should eql("CNR")
68
+ boleto_novo.should be_instance_of(BancoHsbc)
69
+ end
70
+
71
+ it "should mount a valid bank invoice" do
72
+ @valid_attributes[:valor] = 2952.95
73
+ @valid_attributes[:data_documento] = Date.parse("2009-04-03")
74
+ @valid_attributes[:dias_vencimento] = 5
75
+ @valid_attributes[:numero_documento] = "12345678"
76
+ @valid_attributes[:conta_corrente] = "1122334"
77
+ boleto_novo = BancoHsbc.new(@valid_attributes)
78
+ boleto_novo.should be_instance_of(BancoHsbc)
79
+ boleto_novo.monta_codigo_43_digitos.should eql("3999420100002952951122334000001234567809892")
80
+ boleto_novo.codigo_barras.should eql("39998420100002952951122334000001234567809892")
81
+ boleto_novo.codigo_barras.linha_digitavel.should eql("39991.12232 34000.001239 45678.098927 8 42010000295295")
82
+
83
+ @valid_attributes[:valor] = 934.23
84
+ @valid_attributes[:data_documento] = Date.parse("2004-09-03")
85
+ @valid_attributes[:dias_vencimento] = 0
86
+ @valid_attributes[:numero_documento] = "07778899"
87
+ @valid_attributes[:conta_corrente] = "0016324"
88
+ @valid_attributes[:agencia] = "1234"
89
+ boleto_novo = BancoHsbc.new(@valid_attributes)
90
+ boleto_novo.should be_instance_of(BancoHsbc)
91
+ boleto_novo.monta_codigo_43_digitos.should eql("3999252300000934230016324000000777889924742")
92
+ boleto_novo.codigo_barras.should eql("39993252300000934230016324000000777889924742")
93
+ boleto_novo.codigo_barras.linha_digitavel.should eql("39990.01633 24000.000778 78899.247429 3 25230000093423")
94
+ end
95
+
96
+ it "should NOT mount a valid bank invoice" do
97
+ @valid_attributes[:valor] = 934.23
98
+ @valid_attributes[:data_documento] = nil
99
+ @valid_attributes[:dias_vencimento] = 0
100
+ @valid_attributes[:numero_documento] = "07778899"
101
+ @valid_attributes[:conta_corrente] = "0016324"
102
+ @valid_attributes[:agencia] = "1234"
103
+ boleto_novo = BancoHsbc.new(@valid_attributes)
104
+ boleto_novo.should be_instance_of(BancoHsbc)
105
+ boleto_novo.monta_codigo_43_digitos.should be_nil
106
+ boleto_novo.codigo_barras.should be_nil
107
+
108
+ @valid_attributes[:valor] = 934.23
109
+ @valid_attributes[:data_documento] = Date.parse("2004-09-03")
110
+ @valid_attributes[:dias_vencimento] = 0
111
+ @valid_attributes[:numero_documento] = "07778899"
112
+ @valid_attributes[:conta_corrente] = "0016324"
113
+ @valid_attributes[:agencia] = "1234"
114
+ @valid_attributes[:carteira] = "OUTRA"
115
+ boleto_novo = BancoHsbc.new(@valid_attributes)
116
+ boleto_novo.should be_instance_of(BancoHsbc)
117
+ boleto_novo.monta_codigo_43_digitos.should be_nil
118
+ boleto_novo.codigo_barras.should be_nil
119
+ end
120
+
121
+ it "should mount a valid nosso numero" do
122
+ @valid_attributes[:data_documento] = Date.parse("2000-07-04")
123
+ @valid_attributes[:dias_vencimento] = 5
124
+ @valid_attributes[:numero_documento] = "12345678"
125
+ @valid_attributes[:conta_corrente] = "1122334"
126
+ boleto_novo = BancoHsbc.new(@valid_attributes)
127
+ boleto_novo.should be_instance_of(BancoHsbc)
128
+ boleto_novo.nosso_numero.should eql("12345678942")
129
+
130
+ @valid_attributes[:data_documento] = Date.parse("2000-07-04")
131
+ @valid_attributes[:dias_vencimento] = 0
132
+ @valid_attributes[:numero_documento] = "39104766"
133
+ @valid_attributes[:conta_corrente] = "351202"
134
+ boleto_novo = BancoHsbc.new(@valid_attributes)
135
+ boleto_novo.should be_instance_of(BancoHsbc)
136
+ boleto_novo.nosso_numero.should eql("39104766340")
137
+
138
+ @valid_attributes[:data_documento] = Date.parse("2009-04-03")
139
+ @valid_attributes[:dias_vencimento] = 0
140
+ @valid_attributes[:numero_documento] = "39104766"
141
+ @valid_attributes[:conta_corrente] = "351202"
142
+ boleto_novo = BancoHsbc.new(@valid_attributes)
143
+ boleto_novo.should be_instance_of(BancoHsbc)
144
+ boleto_novo.nosso_numero.should eql("39104766346")
145
+
146
+ @valid_attributes[:data_documento] = nil
147
+ @valid_attributes[:dias_vencimento] = 0
148
+ @valid_attributes[:numero_documento] = "39104766"
149
+ @valid_attributes[:conta_corrente] = "351202"
150
+ boleto_novo = BancoHsbc.new(@valid_attributes)
151
+ boleto_novo.should be_instance_of(BancoHsbc)
152
+ boleto_novo.nosso_numero.should eql("39104766354")
153
+ end
154
+
155
+ it "should mount nosso_numero_boleto" do
156
+ @valid_attributes[:data_documento] = Date.parse("2009-08-14")
157
+ boleto_novo = BancoHsbc.new(@valid_attributes)
158
+ boleto_novo.should be_instance_of(BancoHsbc)
159
+ boleto_novo.numero_documento = "4042"
160
+ boleto_novo.carteira = "06"
161
+ boleto_novo.nosso_numero_boleto.should eql("4042847")
162
+ boleto_novo.nosso_numero_dv.should eql(8)
163
+ boleto_novo.numero_documento = "61900"
164
+ boleto_novo.carteira = "05"
165
+ boleto_novo.nosso_numero_boleto.should eql("61900049")
166
+ boleto_novo.nosso_numero_dv.should eql(0)
167
+ boleto_novo.numero_documento = "0719"
168
+ boleto_novo.carteira = "07"
169
+ boleto_novo.nosso_numero_boleto.should eql("0719640")
170
+ boleto_novo.nosso_numero_dv.should eql(6)
171
+ boleto_novo.numero_documento = 4042
172
+ boleto_novo.carteira = "06"
173
+ boleto_novo.nosso_numero_boleto.should eql("4042847")
174
+ boleto_novo.nosso_numero_dv.should eql(8)
175
+ boleto_novo.numero_documento = 61900
176
+ boleto_novo.carteira = "05"
177
+ boleto_novo.nosso_numero_boleto.should eql("61900049")
178
+ boleto_novo.nosso_numero_dv.should eql(0)
179
+ boleto_novo.numero_documento = 719
180
+ boleto_novo.carteira = "07"
181
+ boleto_novo.nosso_numero_boleto.should eql("719640")
182
+ boleto_novo.nosso_numero_dv.should eql(6)
183
+ end
184
+
185
+ it "should mount agencia_conta_boleto" do
186
+ boleto_novo = BancoHsbc.new(@valid_attributes)
187
+ boleto_novo.should be_instance_of(BancoHsbc)
188
+ boleto_novo.agencia_conta_boleto.should eql("61900")
189
+ boleto_novo.agencia = "0719"
190
+ boleto_novo.agencia_conta_boleto.should eql("61900")
191
+ boleto_novo.agencia = "0548"
192
+ boleto_novo.conta_corrente = "1448"
193
+ boleto_novo.agencia_conta_boleto.should eql("1448")
194
+ end
195
+
196
+ it "should test outputs" do
197
+ @valid_attributes[:valor] = 2952.95
198
+ @valid_attributes[:data_documento] = Date.parse("2009-04-03")
199
+ @valid_attributes[:dias_vencimento] = 5
200
+ @valid_attributes[:numero_documento] = "12345678"
201
+ @valid_attributes[:conta_corrente] = "1122334"
202
+ boleto_novo = BancoHsbc.new(@valid_attributes)
203
+ boleto_novo.should be_instance_of(BancoHsbc)
204
+ %w| pdf jpg tif png ps |.each do |format|
205
+ file_body=boleto_novo.to(format.to_sym)
206
+ tmp_file=Tempfile.new("foobar." << format)
207
+ tmp_file.puts file_body
208
+ tmp_file.close
209
+ File.exist?(tmp_file.path).should be_true
210
+ File.stat(tmp_file.path).zero?.should be_false
211
+ File.delete(tmp_file.path).should eql(1)
212
+ File.exist?(tmp_file.path).should be_false
213
+ end
214
+ end
215
+
216
+ end
@@ -0,0 +1,202 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe BancoItau do
4
+ before(:each) do
5
+ @valid_attributes = {
6
+ :especie_documento => "DM",
7
+ :moeda => "9",
8
+ :data_documento => Date.today,
9
+ :dias_vencimento => 1,
10
+ :aceite => "S",
11
+ :quantidade => 1,
12
+ :valor => 0.0,
13
+ :local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO",
14
+ :cedente => "Kivanio Barbosa",
15
+ :documento_cedente => "12345678912",
16
+ :sacado => "Claudio Pozzebom",
17
+ :sacado_documento => "12345678900",
18
+ :agencia => "0810",
19
+ :conta_corrente => "53678",
20
+ :convenio => 12387989,
21
+ :numero_documento => "12345678"
22
+ }
23
+ end
24
+
25
+ it "should create a new default instance" do
26
+ boleto_novo = BancoItau.new
27
+ boleto_novo.banco.should eql("341")
28
+ boleto_novo.especie_documento.should eql("DM")
29
+ boleto_novo.especie.should eql("R$")
30
+ boleto_novo.moeda.should eql("9")
31
+ boleto_novo.data_documento.should eql(Date.today)
32
+ boleto_novo.dias_vencimento.should eql(1)
33
+ boleto_novo.data_vencimento.should eql(Date.today + 1)
34
+ boleto_novo.aceite.should eql("S")
35
+ boleto_novo.quantidade.should eql(1)
36
+ boleto_novo.valor.should eql(0.0)
37
+ boleto_novo.valor_documento.should eql(0.0)
38
+ boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
39
+ boleto_novo.carteira.should eql("175")
40
+ boleto_novo.should be_instance_of(BancoItau)
41
+ end
42
+
43
+ it "should create a new instance given valid attributes" do
44
+ boleto_novo = BancoItau.new(@valid_attributes)
45
+ boleto_novo.banco.should eql("341")
46
+ boleto_novo.especie_documento.should eql("DM")
47
+ boleto_novo.especie.should eql("R$")
48
+ boleto_novo.moeda.should eql("9")
49
+ boleto_novo.data_documento.should eql(Date.today)
50
+ boleto_novo.dias_vencimento.should eql(1)
51
+ boleto_novo.data_vencimento.should eql(Date.today + 1)
52
+ boleto_novo.aceite.should eql("S")
53
+ boleto_novo.quantidade.should eql(1)
54
+ boleto_novo.valor.should eql(0.0)
55
+ boleto_novo.valor_documento.should eql(0.0)
56
+ boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
57
+ boleto_novo.cedente.should eql("Kivanio Barbosa")
58
+ boleto_novo.documento_cedente.should eql("12345678912")
59
+ boleto_novo.sacado.should eql("Claudio Pozzebom")
60
+ boleto_novo.sacado_documento.should eql("12345678900")
61
+ boleto_novo.conta_corrente.should eql("53678")
62
+ boleto_novo.agencia.should eql("0810")
63
+ boleto_novo.convenio.should eql(12387989)
64
+ boleto_novo.numero_documento.should eql("12345678")
65
+ boleto_novo.carteira.should eql("175")
66
+ boleto_novo.should be_instance_of(BancoItau)
67
+ end
68
+
69
+ it "should mount a valid bank invoice" do
70
+ @valid_attributes[:data_documento] = Date.parse("2009/08/13")
71
+ boleto_novo = BancoItau.new(@valid_attributes)
72
+ boleto_novo.should be_instance_of(BancoItau)
73
+ boleto_novo.monta_codigo_43_digitos.should eql("3419432900000000001751234567840810536789000")
74
+ boleto_novo.codigo_barras.should eql("34191432900000000001751234567840810536789000")
75
+ boleto_novo.codigo_barras.linha_digitavel.should eql("34191.75124 34567.840813 05367.890000 1 43290000000000")
76
+
77
+ @valid_attributes[:valor] = 135.00
78
+ @valid_attributes[:numero_documento] = "258281"
79
+ @valid_attributes[:data_documento] = Date.parse("2008/02/01")
80
+ boleto_novo = BancoItau.new(@valid_attributes)
81
+ boleto_novo.should be_instance_of(BancoItau)
82
+ boleto_novo.monta_codigo_43_digitos.should eql("3419377000000135001750025828170810536789000")
83
+ boleto_novo.codigo_barras.should eql("34191377000000135001750025828170810536789000")
84
+ boleto_novo.codigo_barras.linha_digitavel.should eql("34191.75009 25828.170818 05367.890000 1 37700000013500")
85
+
86
+ @valid_attributes[:numero_documento] = "258281"
87
+ @valid_attributes[:data_documento] = Date.parse("2004/09/04")
88
+ @valid_attributes[:carteira] = 168
89
+ @valid_attributes[:valor] = 135.00
90
+ boleto_novo = BancoItau.new(@valid_attributes)
91
+ boleto_novo.should be_instance_of(BancoItau)
92
+ boleto_novo.monta_codigo_43_digitos.should eql("3419252500000135001680025828120810536789000")
93
+ boleto_novo.codigo_barras.should eql("34194252500000135001680025828120810536789000")
94
+ boleto_novo.codigo_barras.linha_digitavel.should eql("34191.68004 25828.120813 05367.890000 4 25250000013500")
95
+
96
+ @valid_attributes[:numero_documento] = "258281"
97
+ @valid_attributes[:data_documento] = Date.parse("2004/09/04")
98
+ @valid_attributes[:carteira] = 196
99
+ @valid_attributes[:valor] = 135.00
100
+ @valid_attributes[:convenio] = "12345"
101
+ @valid_attributes[:seu_numero] = "1234567"
102
+ boleto_novo = BancoItau.new(@valid_attributes)
103
+ boleto_novo.should be_instance_of(BancoItau)
104
+ boleto_novo.monta_codigo_43_digitos.should eql("3419252500000135001960025828112345671234550")
105
+ boleto_novo.codigo_barras.should eql("34191252500000135001960025828112345671234550")
106
+ boleto_novo.codigo_barras.linha_digitavel.should eql("34191.96005 25828.112349 56712.345505 1 25250000013500")
107
+
108
+ @valid_attributes[:numero_documento] = "258281"
109
+ @valid_attributes[:data_documento] = Date.parse("2004/09/04")
110
+ @valid_attributes[:carteira] = 196
111
+ @valid_attributes[:valor] = 135.00
112
+ @valid_attributes[:convenio] = "12345"
113
+ @valid_attributes[:seu_numero] = "123456"
114
+ boleto_novo = BancoItau.new(@valid_attributes)
115
+ boleto_novo.should be_instance_of(BancoItau)
116
+ boleto_novo.monta_codigo_43_digitos.should eql("3419252500000135001960025828101234561234550")
117
+ boleto_novo.codigo_barras.should eql("34192252500000135001960025828101234561234550")
118
+ boleto_novo.codigo_barras.linha_digitavel.should eql("34191.96005 25828.101235 45612.345509 2 25250000013500")
119
+
120
+ @valid_attributes[:numero_documento] = "258281"
121
+ @valid_attributes[:data_documento] = Date.parse("2004/09/04")
122
+ @valid_attributes[:carteira] = 196
123
+ @valid_attributes[:valor] = 135.00
124
+ @valid_attributes[:convenio] = "1234"
125
+ @valid_attributes[:seu_numero] = "123456"
126
+ boleto_novo = BancoItau.new(@valid_attributes)
127
+ boleto_novo.should be_instance_of(BancoItau)
128
+ boleto_novo.monta_codigo_43_digitos.should eql("3419252500000135001960025828101234560123440")
129
+ boleto_novo.codigo_barras.should eql("34192252500000135001960025828101234560123440")
130
+ boleto_novo.codigo_barras.linha_digitavel.should eql("34191.96005 25828.101235 45601.234409 2 25250000013500")
131
+ end
132
+
133
+ it "should mount a valid agencia_conta_corrente_dv" do
134
+ @valid_attributes[:conta_corrente] = "15255"
135
+ @valid_attributes[:agencia] = "0607"
136
+ boleto_novo = BancoItau.new(@valid_attributes)
137
+ boleto_novo.should be_instance_of(BancoItau)
138
+ boleto_novo.agencia_conta_corrente_dv.should eql(0)
139
+
140
+ @valid_attributes[:conta_corrente] = "85547"
141
+ @valid_attributes[:agencia] = "1547"
142
+ boleto_novo = BancoItau.new(@valid_attributes)
143
+ boleto_novo.should be_instance_of(BancoItau)
144
+ boleto_novo.agencia_conta_corrente_dv.should eql(6)
145
+
146
+ @valid_attributes[:conta_corrente] = "10207"
147
+ @valid_attributes[:agencia] = "1547"
148
+ boleto_novo = BancoItau.new(@valid_attributes)
149
+ boleto_novo.should be_instance_of(BancoItau)
150
+ boleto_novo.agencia_conta_corrente_dv.should eql(7)
151
+
152
+ @valid_attributes[:conta_corrente] = "53678"
153
+ @valid_attributes[:agencia] = "0811"
154
+ boleto_novo = BancoItau.new(@valid_attributes)
155
+ boleto_novo.should be_instance_of(BancoItau)
156
+ boleto_novo.agencia_conta_corrente_dv.should eql(8)
157
+ end
158
+
159
+ it "should mount a valid nosso_numero_dv" do
160
+ @valid_attributes[:numero_documento] = "00015448"
161
+ boleto_novo = BancoItau.new(@valid_attributes)
162
+ boleto_novo.should be_instance_of(BancoItau)
163
+ boleto_novo.nosso_numero_dv.should eql(6)
164
+
165
+ @valid_attributes[:numero_documento] = "15448"
166
+ boleto_novo = BancoItau.new(@valid_attributes)
167
+ boleto_novo.should be_instance_of(BancoItau)
168
+ boleto_novo.nosso_numero_dv.should eql(6)
169
+
170
+ @valid_attributes[:numero_documento] = "12345678"
171
+ boleto_novo = BancoItau.new(@valid_attributes)
172
+ boleto_novo.should be_instance_of(BancoItau)
173
+ boleto_novo.nosso_numero_dv.should eql(4)
174
+
175
+ @valid_attributes[:numero_documento] = "34230"
176
+ boleto_novo = BancoItau.new(@valid_attributes)
177
+ boleto_novo.should be_instance_of(BancoItau)
178
+ boleto_novo.nosso_numero_dv.should eql(5)
179
+
180
+ @valid_attributes[:numero_documento] = "258281"
181
+ boleto_novo = BancoItau.new(@valid_attributes)
182
+ boleto_novo.should be_instance_of(BancoItau)
183
+ boleto_novo.nosso_numero_dv.should eql(7)
184
+ end
185
+
186
+ it "should test outputs" do
187
+ @valid_attributes[:data_documento] = Date.parse("2009/08/13")
188
+ boleto_novo = BancoItau.new(@valid_attributes)
189
+ boleto_novo.should be_instance_of(BancoItau)
190
+ %w| pdf jpg tif png ps |.each do |format|
191
+ file_body=boleto_novo.to(format.to_sym)
192
+ tmp_file=Tempfile.new("foobar." << format)
193
+ tmp_file.puts file_body
194
+ tmp_file.close
195
+ File.exist?(tmp_file.path).should be_true
196
+ File.stat(tmp_file.path).zero?.should be_false
197
+ File.delete(tmp_file.path).should eql(1)
198
+ File.exist?(tmp_file.path).should be_false
199
+ end
200
+ end
201
+
202
+ end
@@ -0,0 +1,145 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe BancoReal do
4
+ before(:each) do
5
+ @valid_attributes = {
6
+ :especie_documento => "DM",
7
+ :moeda => "9",
8
+ :data_documento => Date.today,
9
+ :dias_vencimento => 1,
10
+ :aceite => "S",
11
+ :quantidade => 1,
12
+ :valor => 0.0,
13
+ :local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO",
14
+ :cedente => "Kivanio Barbosa",
15
+ :documento_cedente => "12345678912",
16
+ :sacado => "Claudio Pozzebom",
17
+ :sacado_documento => "12345678900",
18
+ :agencia => "4042",
19
+ :conta_corrente => "61900",
20
+ :convenio => 12387989,
21
+ :numero_documento => "777700168"
22
+ }
23
+ end
24
+
25
+ it "should create a new default instance" do
26
+ boleto_novo = BancoReal.new
27
+ boleto_novo.banco.should eql("356")
28
+ boleto_novo.especie_documento.should eql("DM")
29
+ boleto_novo.especie.should eql("R$")
30
+ boleto_novo.moeda.should eql("9")
31
+ boleto_novo.data_documento.should eql(Date.today)
32
+ boleto_novo.dias_vencimento.should eql(1)
33
+ boleto_novo.data_vencimento.should eql(Date.today + 1)
34
+ boleto_novo.aceite.should eql("S")
35
+ boleto_novo.quantidade.should eql(1)
36
+ boleto_novo.valor.should eql(0.0)
37
+ boleto_novo.valor_documento.should eql(0.0)
38
+ boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
39
+ boleto_novo.carteira.should eql("57")
40
+ boleto_novo.should be_instance_of(BancoReal)
41
+ end
42
+
43
+ it "should create a new instance given valid attributes" do
44
+ boleto_novo = BancoReal.new(@valid_attributes)
45
+ boleto_novo.banco.should eql("356")
46
+ boleto_novo.especie_documento.should eql("DM")
47
+ boleto_novo.especie.should eql("R$")
48
+ boleto_novo.moeda.should eql("9")
49
+ boleto_novo.data_documento.should eql(Date.today)
50
+ boleto_novo.dias_vencimento.should eql(1)
51
+ boleto_novo.data_vencimento.should eql(Date.today + 1)
52
+ boleto_novo.aceite.should eql("S")
53
+ boleto_novo.quantidade.should eql(1)
54
+ boleto_novo.valor.should eql(0.0)
55
+ boleto_novo.valor_documento.should eql(0.0)
56
+ boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
57
+ boleto_novo.cedente.should eql("Kivanio Barbosa")
58
+ boleto_novo.documento_cedente.should eql("12345678912")
59
+ boleto_novo.sacado.should eql("Claudio Pozzebom")
60
+ boleto_novo.sacado_documento.should eql("12345678900")
61
+ boleto_novo.conta_corrente.should eql("61900")
62
+ boleto_novo.agencia.should eql("4042")
63
+ boleto_novo.convenio.should eql(12387989)
64
+ boleto_novo.numero_documento.should eql("777700168")
65
+ boleto_novo.carteira.should eql("57")
66
+ boleto_novo.should be_instance_of(BancoReal)
67
+ end
68
+
69
+ it "should mount a valid bank invoice para carteira registrada" do
70
+ @valid_attributes[:valor] = 135.00
71
+ @valid_attributes[:data_documento] = Date.parse("2008-02-01")
72
+ @valid_attributes[:dias_vencimento] = 0
73
+ @valid_attributes[:numero_documento] = "7701684"
74
+ @valid_attributes[:carteira] = "56"
75
+ boleto_novo = BancoReal.new(@valid_attributes)
76
+ boleto_novo.should be_instance_of(BancoReal)
77
+ boleto_novo.agencia_conta_corrente_nosso_numero_dv.should eql(8)
78
+ boleto_novo.monta_codigo_43_digitos.should eql("3569376900000135000000004042006190087701684")
79
+ boleto_novo.codigo_barras.should eql("35691376900000135000000004042006190087701684")
80
+ boleto_novo.codigo_barras.linha_digitavel.should eql("35690.00007 04042.006199 00877.016840 1 37690000013500")
81
+ end
82
+
83
+ it "should mount a valid bank invoice pra carteiras sem registro" do
84
+ @valid_attributes[:valor] = 135.00
85
+ @valid_attributes[:data_documento] = Date.parse("2008-02-01")
86
+ @valid_attributes[:dias_vencimento] = 1
87
+ @valid_attributes[:numero_documento] = "777700168"
88
+ @valid_attributes[:carteira] = "57"
89
+ boleto_novo = BancoReal.new(@valid_attributes)
90
+ boleto_novo.should be_instance_of(BancoReal)
91
+ boleto_novo.agencia_conta_corrente_nosso_numero_dv.should eql(3)
92
+ boleto_novo.monta_codigo_43_digitos.should eql("3569377000000135004042006190030000777700168")
93
+ boleto_novo.codigo_barras.should eql("35692377000000135004042006190030000777700168")
94
+ boleto_novo.codigo_barras.linha_digitavel.should eql("35694.04209 06190.030004 07777.001681 2 37700000013500")
95
+
96
+ @valid_attributes[:valor] = 934.23
97
+ @valid_attributes[:data_documento] = Date.parse("2004-09-03")
98
+ @valid_attributes[:dias_vencimento] = 0
99
+ @valid_attributes[:numero_documento] = "00005020"
100
+ @valid_attributes[:carteira] = "57"
101
+ @valid_attributes[:conta_corrente] = "0016324"
102
+ @valid_attributes[:agencia] = "1018"
103
+ boleto_novo = BancoReal.new(@valid_attributes)
104
+ boleto_novo.should be_instance_of(BancoReal)
105
+ boleto_novo.agencia_conta_corrente_nosso_numero_dv.should eql(9)
106
+ boleto_novo.monta_codigo_43_digitos.should eql("3569252300000934231018001632490000000005020")
107
+ boleto_novo.codigo_barras.should eql("35697252300000934231018001632490000000005020")
108
+ boleto_novo.codigo_barras.linha_digitavel.should eql("35691.01805 01632.490007 00000.050203 7 25230000093423")
109
+ end
110
+
111
+ it "should NOT mount a valid bank invoice" do
112
+ @valid_attributes[:valor] = 0
113
+ @valid_attributes[:data_documento] = Date.parse("2004-09-03")
114
+ @valid_attributes[:dias_vencimento] = 0
115
+ @valid_attributes[:numero_documento] = ""
116
+ @valid_attributes[:carteira] = ""
117
+ @valid_attributes[:conta_corrente] = ""
118
+ @valid_attributes[:agencia] = ""
119
+ boleto_novo = BancoReal.new(@valid_attributes)
120
+ boleto_novo.should be_instance_of(BancoReal)
121
+ lambda { boleto_novo.agencia_conta_corrente_nosso_numero_dv }.should raise_error(ArgumentError)
122
+ lambda { boleto_novo.monta_codigo_43_digitos }.should raise_error(ArgumentError)
123
+ lambda { boleto_novo.codigo_barras }.should raise_error(ArgumentError)
124
+ end
125
+
126
+ it "should test outputs" do
127
+ @valid_attributes[:valor] = 135.00
128
+ @valid_attributes[:data_documento] = Date.parse("2008-02-01")
129
+ @valid_attributes[:dias_vencimento] = 0
130
+ @valid_attributes[:numero_documento] = "7701684"
131
+ @valid_attributes[:carteira] = "56"
132
+ boleto_novo = BancoReal.new(@valid_attributes)
133
+ boleto_novo.should be_instance_of(BancoReal)
134
+ %w| pdf jpg tif png ps |.each do |format|
135
+ file_body=boleto_novo.to(format.to_sym)
136
+ tmp_file=Tempfile.new("foobar." << format)
137
+ tmp_file.puts file_body
138
+ tmp_file.close
139
+ File.exist?(tmp_file.path).should be_true
140
+ File.stat(tmp_file.path).zero?.should be_false
141
+ File.delete(tmp_file.path).should eql(1)
142
+ File.exist?(tmp_file.path).should be_false
143
+ end
144
+ end
145
+ end