brcobranca 2.0.6 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/.document +5 -0
  2. data/.gitignore +30 -0
  3. data/Gemfile +11 -0
  4. data/Gemfile.lock +48 -0
  5. data/History.txt +13 -1
  6. data/LICENSE +20 -0
  7. data/README.rdoc +12 -5
  8. data/Rakefile +33 -37
  9. data/VERSION +1 -0
  10. data/brcobranca.gemspec +26 -35
  11. data/lib/brcobranca/arquivos/logos/{bb.jpg → bancobrasil.jpg} +0 -0
  12. data/lib/brcobranca/arquivos/logos/banespa.jpg +0 -0
  13. data/lib/brcobranca/arquivos/logos/caixa.jpg +0 -0
  14. data/lib/brcobranca/boleto/banco_brasil.rb +150 -77
  15. data/lib/brcobranca/boleto/base.rb +146 -75
  16. data/lib/brcobranca/boleto/bradesco.rb +69 -0
  17. data/lib/brcobranca/boleto/caixa.rb +100 -0
  18. data/lib/brcobranca/boleto/hsbc.rb +95 -0
  19. data/lib/brcobranca/boleto/itau.rb +133 -0
  20. data/lib/brcobranca/boleto/real.rb +74 -0
  21. data/lib/brcobranca/boleto/template/base.rb +13 -0
  22. data/lib/brcobranca/boleto/template/rghost.rb +136 -62
  23. data/lib/brcobranca/boleto/unibanco.rb +115 -0
  24. data/lib/brcobranca/calculo.rb +132 -0
  25. data/lib/brcobranca/calculo_data.rb +42 -0
  26. data/lib/brcobranca/currency.rb +3 -4
  27. data/lib/brcobranca/formatacao.rb +102 -0
  28. data/lib/brcobranca/limpeza.rb +19 -0
  29. data/lib/brcobranca/retorno/base.rb +1 -2
  30. data/lib/brcobranca/retorno/retorno_cbr643.rb +42 -40
  31. data/lib/brcobranca/version.rb +3 -0
  32. data/lib/brcobranca.rb +93 -16
  33. data/spec/brcobranca/banco_bradesco_spec.rb +63 -50
  34. data/spec/brcobranca/banco_brasil_spec.rb +102 -136
  35. data/spec/brcobranca/banco_caixa_spec.rb +166 -0
  36. data/spec/brcobranca/banco_hsbc_spec.rb +83 -76
  37. data/spec/brcobranca/banco_real_spec.rb +54 -37
  38. data/spec/brcobranca/banco_unibanco_spec.rb +69 -52
  39. data/spec/brcobranca/base_spec.rb +24 -79
  40. data/spec/brcobranca/boletos_em_lote_spec.rb +46 -0
  41. data/spec/brcobranca/core_ext_spec.rb +24 -114
  42. data/spec/brcobranca/currency_spec.rb +1 -0
  43. data/spec/brcobranca/{banco_itau_spec.rb → itau_spec.rb} +112 -67
  44. data/spec/brcobranca/retorno_cbr643_spec.rb +13 -12
  45. data/spec/brcobranca/rghost_spec.rb +8 -7
  46. data/spec/brcobranca_spec.rb +16 -6
  47. data/spec/spec_helper.rb +11 -8
  48. metadata +107 -58
  49. data/Manifest.txt +0 -51
  50. data/PostInstall.txt +0 -4
  51. data/lib/brcobranca/boleto/banco_banespa.rb +0 -85
  52. data/lib/brcobranca/boleto/banco_bradesco.rb +0 -44
  53. data/lib/brcobranca/boleto/banco_hsbc.rb +0 -77
  54. data/lib/brcobranca/boleto/banco_itau.rb +0 -115
  55. data/lib/brcobranca/boleto/banco_real.rb +0 -70
  56. data/lib/brcobranca/boleto/banco_unibanco.rb +0 -79
  57. data/lib/brcobranca/boleto/template/util.rb +0 -32
  58. data/lib/brcobranca/config.rb +0 -9
  59. data/lib/brcobranca/core_ext.rb +0 -279
  60. data/spec/brcobranca/banco_banespa_spec.rb +0 -195
  61. data/spec/brcobranca/template/rghost_spec.rb +0 -65
  62. data/spec/brcobranca/template/util_spec.rb +0 -42
  63. data/spec/rcov.opts +0 -2
  64. data/spec/spec.opts +0 -6
  65. data/tasks/rcov.rake +0 -12
  66. data/tasks/rspec.rake +0 -21
@@ -1,6 +1,7 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
3
 
3
- describe BancoHsbc do
4
+ describe Brcobranca::Boleto::Hsbc do
4
5
 
5
6
  before(:each) do
6
7
  @valid_attributes = {
@@ -24,8 +25,8 @@ describe BancoHsbc do
24
25
  end
25
26
 
26
27
 
27
- it "should create a new default instance" do
28
- boleto_novo = BancoHsbc.new
28
+ it "Criar nova instancia com atributos padrões" do
29
+ boleto_novo = Brcobranca::Boleto::Hsbc.new
29
30
  boleto_novo.banco.should eql("399")
30
31
  boleto_novo.especie_documento.should eql("DM")
31
32
  boleto_novo.especie.should eql("R$")
@@ -39,11 +40,11 @@ describe BancoHsbc do
39
40
  boleto_novo.valor_documento.should eql(0.0)
40
41
  boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
41
42
  boleto_novo.carteira.should eql("CNR")
42
- boleto_novo.should be_instance_of(BancoHsbc)
43
+
43
44
  end
44
45
 
45
- it "should create a new instance given valid attributes" do
46
- boleto_novo = BancoHsbc.new(@valid_attributes)
46
+ it "Criar nova instancia com atributos válidos" do
47
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
47
48
  boleto_novo.banco.should eql("399")
48
49
  boleto_novo.especie_documento.should eql("DM")
49
50
  boleto_novo.especie.should eql("R$")
@@ -60,25 +61,24 @@ describe BancoHsbc do
60
61
  boleto_novo.documento_cedente.should eql("12345678912")
61
62
  boleto_novo.sacado.should eql("Claudio Pozzebom")
62
63
  boleto_novo.sacado_documento.should eql("12345678900")
63
- boleto_novo.conta_corrente.should eql("61900")
64
+ boleto_novo.conta_corrente.should eql("0061900")
64
65
  boleto_novo.agencia.should eql("4042")
65
66
  boleto_novo.convenio.should eql(12387989)
66
- boleto_novo.numero_documento.should eql("777700168")
67
+ boleto_novo.numero_documento.should eql("0000777700168")
67
68
  boleto_novo.carteira.should eql("CNR")
68
- boleto_novo.should be_instance_of(BancoHsbc)
69
69
  end
70
70
 
71
- it "should mount a valid bank invoice" do
71
+ it "Gerar boleto" do
72
72
  @valid_attributes[:valor] = 2952.95
73
73
  @valid_attributes[:data_documento] = Date.parse("2009-04-03")
74
74
  @valid_attributes[:dias_vencimento] = 5
75
75
  @valid_attributes[:numero_documento] = "12345678"
76
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")
77
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
78
+
79
+ boleto_novo.codigo_barras_segunda_parte.should eql("1122334000001234567809892")
80
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")
81
+ boleto_novo.codigo_barras.linha_digitavel.should eql("39991.12232 34000.001239 45678.098927 8 42010000295295")
82
82
 
83
83
  @valid_attributes[:valor] = 934.23
84
84
  @valid_attributes[:data_documento] = Date.parse("2004-09-03")
@@ -86,123 +86,130 @@ describe BancoHsbc do
86
86
  @valid_attributes[:numero_documento] = "07778899"
87
87
  @valid_attributes[:conta_corrente] = "0016324"
88
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")
89
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
90
+
91
+ boleto_novo.codigo_barras_segunda_parte.should eql("0016324000000777889924742")
92
92
  boleto_novo.codigo_barras.should eql("39993252300000934230016324000000777889924742")
93
93
  boleto_novo.codigo_barras.linha_digitavel.should eql("39990.01633 24000.000778 78899.247429 3 25230000093423")
94
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
95
+
96
+ it "Não permitir gerar boleto com atributos inválido" do
97
+ boleto_novo = Brcobranca::Boleto::Hsbc.new
98
+ lambda { boleto_novo.codigo_barras }.should raise_error(Brcobranca::BoletoInvalido)
99
+ boleto_novo.errors.count.should eql(3)
119
100
  end
120
101
 
121
- it "should mount a valid nosso numero" do
102
+ it "Montar nosso número" do
122
103
  @valid_attributes[:data_documento] = Date.parse("2000-07-04")
123
104
  @valid_attributes[:dias_vencimento] = 5
124
105
  @valid_attributes[:numero_documento] = "12345678"
125
106
  @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")
107
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
108
+
109
+ boleto_novo.nosso_numero.should eql("0000012345678942")
129
110
 
130
111
  @valid_attributes[:data_documento] = Date.parse("2000-07-04")
131
112
  @valid_attributes[:dias_vencimento] = 0
132
113
  @valid_attributes[:numero_documento] = "39104766"
133
114
  @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")
115
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
116
+
117
+ boleto_novo.nosso_numero.should eql("0000039104766340")
137
118
 
138
119
  @valid_attributes[:data_documento] = Date.parse("2009-04-03")
139
120
  @valid_attributes[:dias_vencimento] = 0
140
121
  @valid_attributes[:numero_documento] = "39104766"
141
122
  @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
-
123
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
124
+
125
+ boleto_novo.nosso_numero.should eql("0000039104766346")
126
+
146
127
  @valid_attributes[:data_documento] = nil
147
128
  @valid_attributes[:dias_vencimento] = 0
148
129
  @valid_attributes[:numero_documento] = "39104766"
149
130
  @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")
131
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
132
+
133
+ lambda { boleto_novo.nosso_numero }.should raise_error(ArgumentError)
153
134
  end
154
-
155
- it "should mount nosso_numero_boleto" do
135
+
136
+ it "Montar nosso_numero_boleto" do
156
137
  @valid_attributes[:data_documento] = Date.parse("2009-08-14")
157
- boleto_novo = BancoHsbc.new(@valid_attributes)
158
- boleto_novo.should be_instance_of(BancoHsbc)
138
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
139
+
159
140
  boleto_novo.numero_documento = "4042"
160
141
  boleto_novo.carteira = "06"
161
- boleto_novo.nosso_numero_boleto.should eql("4042847")
142
+ boleto_novo.nosso_numero_boleto.should eql("0000000004042847")
162
143
  boleto_novo.nosso_numero_dv.should eql(8)
163
144
  boleto_novo.numero_documento = "61900"
164
145
  boleto_novo.carteira = "05"
165
- boleto_novo.nosso_numero_boleto.should eql("61900049")
146
+ boleto_novo.nosso_numero_boleto.should eql("0000000061900049")
166
147
  boleto_novo.nosso_numero_dv.should eql(0)
167
148
  boleto_novo.numero_documento = "0719"
168
149
  boleto_novo.carteira = "07"
169
- boleto_novo.nosso_numero_boleto.should eql("0719640")
150
+ boleto_novo.nosso_numero_boleto.should eql("0000000000719640")
170
151
  boleto_novo.nosso_numero_dv.should eql(6)
171
152
  boleto_novo.numero_documento = 4042
172
153
  boleto_novo.carteira = "06"
173
- boleto_novo.nosso_numero_boleto.should eql("4042847")
154
+ boleto_novo.nosso_numero_boleto.should eql("0000000004042847")
174
155
  boleto_novo.nosso_numero_dv.should eql(8)
175
156
  boleto_novo.numero_documento = 61900
176
157
  boleto_novo.carteira = "05"
177
- boleto_novo.nosso_numero_boleto.should eql("61900049")
158
+ boleto_novo.nosso_numero_boleto.should eql("0000000061900049")
178
159
  boleto_novo.nosso_numero_dv.should eql(0)
179
160
  boleto_novo.numero_documento = 719
180
161
  boleto_novo.carteira = "07"
181
- boleto_novo.nosso_numero_boleto.should eql("719640")
162
+ boleto_novo.nosso_numero_boleto.should eql("0000000000719640")
182
163
  boleto_novo.nosso_numero_dv.should eql(6)
183
164
  end
184
165
 
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")
166
+ it "Montar agencia_conta_boleto" do
167
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
168
+
169
+ boleto_novo.agencia_conta_boleto.should eql("0061900")
189
170
  boleto_novo.agencia = "0719"
190
- boleto_novo.agencia_conta_boleto.should eql("61900")
171
+ boleto_novo.agencia_conta_boleto.should eql("0061900")
191
172
  boleto_novo.agencia = "0548"
192
173
  boleto_novo.conta_corrente = "1448"
193
- boleto_novo.agencia_conta_boleto.should eql("1448")
174
+ boleto_novo.agencia_conta_boleto.should eql("0001448")
175
+ end
176
+
177
+ it "Busca logotipo do banco" do
178
+ boleto_novo = Brcobranca::Boleto::Hsbc.new
179
+ File.exist?(boleto_novo.logotipo).should be_true
180
+ File.stat(boleto_novo.logotipo).zero?.should be_false
181
+ end
182
+
183
+ it "Gerar boleto nos formatos válidos com método to_" do
184
+ @valid_attributes[:valor] = 2952.95
185
+ @valid_attributes[:data_documento] = Date.parse("2009-04-03")
186
+ @valid_attributes[:dias_vencimento] = 5
187
+ @valid_attributes[:numero_documento] = "12345678"
188
+ @valid_attributes[:conta_corrente] = "1122334"
189
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
190
+
191
+ %w| pdf jpg tif png ps |.each do |format|
192
+ file_body=boleto_novo.send("to_#{format}".to_sym)
193
+ tmp_file=Tempfile.new("foobar." << format)
194
+ tmp_file.puts file_body
195
+ tmp_file.close
196
+ File.exist?(tmp_file.path).should be_true
197
+ File.stat(tmp_file.path).zero?.should be_false
198
+ File.delete(tmp_file.path).should eql(1)
199
+ File.exist?(tmp_file.path).should be_false
200
+ end
194
201
  end
195
-
196
- it "should test outputs" do
202
+
203
+ it "Gerar boleto nos formatos válidos" do
197
204
  @valid_attributes[:valor] = 2952.95
198
205
  @valid_attributes[:data_documento] = Date.parse("2009-04-03")
199
206
  @valid_attributes[:dias_vencimento] = 5
200
207
  @valid_attributes[:numero_documento] = "12345678"
201
208
  @valid_attributes[:conta_corrente] = "1122334"
202
- boleto_novo = BancoHsbc.new(@valid_attributes)
203
- boleto_novo.should be_instance_of(BancoHsbc)
209
+ boleto_novo = Brcobranca::Boleto::Hsbc.new(@valid_attributes)
210
+
204
211
  %w| pdf jpg tif png ps |.each do |format|
205
- file_body=boleto_novo.to(format.to_sym)
212
+ file_body=boleto_novo.to(format)
206
213
  tmp_file=Tempfile.new("foobar." << format)
207
214
  tmp_file.puts file_body
208
215
  tmp_file.close
@@ -1,6 +1,7 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
3
 
3
- describe BancoReal do
4
+ describe Brcobranca::Boleto::Real do
4
5
  before(:each) do
5
6
  @valid_attributes = {
6
7
  :especie_documento => "DM",
@@ -22,8 +23,8 @@ describe BancoReal do
22
23
  }
23
24
  end
24
25
 
25
- it "should create a new default instance" do
26
- boleto_novo = BancoReal.new
26
+ it "Criar nova instancia com atributos padrões" do
27
+ boleto_novo = Brcobranca::Boleto::Real.new
27
28
  boleto_novo.banco.should eql("356")
28
29
  boleto_novo.especie_documento.should eql("DM")
29
30
  boleto_novo.especie.should eql("R$")
@@ -37,11 +38,11 @@ describe BancoReal do
37
38
  boleto_novo.valor_documento.should eql(0.0)
38
39
  boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
39
40
  boleto_novo.carteira.should eql("57")
40
- boleto_novo.should be_instance_of(BancoReal)
41
+
41
42
  end
42
43
 
43
- it "should create a new instance given valid attributes" do
44
- boleto_novo = BancoReal.new(@valid_attributes)
44
+ it "Criar nova instancia com atributos válidos" do
45
+ boleto_novo = Brcobranca::Boleto::Real.new(@valid_attributes)
45
46
  boleto_novo.banco.should eql("356")
46
47
  boleto_novo.especie_documento.should eql("DM")
47
48
  boleto_novo.especie.should eql("R$")
@@ -58,38 +59,37 @@ describe BancoReal do
58
59
  boleto_novo.documento_cedente.should eql("12345678912")
59
60
  boleto_novo.sacado.should eql("Claudio Pozzebom")
60
61
  boleto_novo.sacado_documento.should eql("12345678900")
61
- boleto_novo.conta_corrente.should eql("61900")
62
+ boleto_novo.conta_corrente.should eql("0061900")
62
63
  boleto_novo.agencia.should eql("4042")
63
64
  boleto_novo.convenio.should eql(12387989)
64
- boleto_novo.numero_documento.should eql("777700168")
65
+ boleto_novo.numero_documento.should eql("0000777700168")
65
66
  boleto_novo.carteira.should eql("57")
66
- boleto_novo.should be_instance_of(BancoReal)
67
67
  end
68
68
 
69
- it "should mount a valid bank invoice para carteira registrada" do
69
+ it "Gerar boleto para carteira registrada" do
70
70
  @valid_attributes[:valor] = 135.00
71
71
  @valid_attributes[:data_documento] = Date.parse("2008-02-01")
72
72
  @valid_attributes[:dias_vencimento] = 0
73
73
  @valid_attributes[:numero_documento] = "7701684"
74
74
  @valid_attributes[:carteira] = "56"
75
- boleto_novo = BancoReal.new(@valid_attributes)
76
- boleto_novo.should be_instance_of(BancoReal)
75
+ boleto_novo = Brcobranca::Boleto::Real.new(@valid_attributes)
76
+
77
77
  boleto_novo.agencia_conta_corrente_nosso_numero_dv.should eql(8)
78
- boleto_novo.monta_codigo_43_digitos.should eql("3569376900000135000000004042006190087701684")
78
+ boleto_novo.codigo_barras_segunda_parte.should eql("0000004042006190087701684")
79
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")
80
+ boleto_novo.codigo_barras.linha_digitavel.should eql("35690.00007 04042.006199 00877.016840 1 37690000013500")
81
81
  end
82
82
 
83
- it "should mount a valid bank invoice pra carteiras sem registro" do
83
+ it "Gerar boleto pra carteiras sem registro" do
84
84
  @valid_attributes[:valor] = 135.00
85
85
  @valid_attributes[:data_documento] = Date.parse("2008-02-01")
86
86
  @valid_attributes[:dias_vencimento] = 1
87
87
  @valid_attributes[:numero_documento] = "777700168"
88
88
  @valid_attributes[:carteira] = "57"
89
- boleto_novo = BancoReal.new(@valid_attributes)
90
- boleto_novo.should be_instance_of(BancoReal)
89
+ boleto_novo = Brcobranca::Boleto::Real.new(@valid_attributes)
90
+
91
91
  boleto_novo.agencia_conta_corrente_nosso_numero_dv.should eql(3)
92
- boleto_novo.monta_codigo_43_digitos.should eql("3569377000000135004042006190030000777700168")
92
+ boleto_novo.codigo_barras_segunda_parte.should eql("4042006190030000777700168")
93
93
  boleto_novo.codigo_barras.should eql("35692377000000135004042006190030000777700168")
94
94
  boleto_novo.codigo_barras.linha_digitavel.should eql("35694.04209 06190.030004 07777.001681 2 37700000013500")
95
95
 
@@ -100,39 +100,56 @@ describe BancoReal do
100
100
  @valid_attributes[:carteira] = "57"
101
101
  @valid_attributes[:conta_corrente] = "0016324"
102
102
  @valid_attributes[:agencia] = "1018"
103
- boleto_novo = BancoReal.new(@valid_attributes)
104
- boleto_novo.should be_instance_of(BancoReal)
103
+ boleto_novo = Brcobranca::Boleto::Real.new(@valid_attributes)
104
+
105
105
  boleto_novo.agencia_conta_corrente_nosso_numero_dv.should eql(9)
106
- boleto_novo.monta_codigo_43_digitos.should eql("3569252300000934231018001632490000000005020")
106
+ boleto_novo.codigo_barras_segunda_parte.should eql("1018001632490000000005020")
107
107
  boleto_novo.codigo_barras.should eql("35697252300000934231018001632490000000005020")
108
108
  boleto_novo.codigo_barras.linha_digitavel.should eql("35691.01805 01632.490007 00000.050203 7 25230000093423")
109
109
  end
110
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")
111
+ it "Não permitir gerar boleto com atributos inválido" do
112
+ boleto_novo = Brcobranca::Boleto::Real.new(:numero_documento => "18030299444444444401")
113
+ lambda { boleto_novo.codigo_barras }.should raise_error(Brcobranca::BoletoInvalido)
114
+ boleto_novo.errors.count.should eql(3)
115
+ end
116
+
117
+ it "Busca logotipo do banco" do
118
+ boleto_novo = Brcobranca::Boleto::Real.new
119
+ File.exist?(boleto_novo.logotipo).should be_true
120
+ File.stat(boleto_novo.logotipo).zero?.should be_false
121
+ end
122
+
123
+ it "Gerar boleto nos formatos válidos com método to_" do
124
+ @valid_attributes[:valor] = 135.00
125
+ @valid_attributes[:data_documento] = Date.parse("2008-02-01")
114
126
  @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)
127
+ @valid_attributes[:numero_documento] = "7701684"
128
+ @valid_attributes[:carteira] = "56"
129
+ boleto_novo = Brcobranca::Boleto::Real.new(@valid_attributes)
130
+
131
+ %w| pdf jpg tif png ps |.each do |format|
132
+ file_body=boleto_novo.send("to_#{format}".to_sym)
133
+ tmp_file=Tempfile.new("foobar." << format)
134
+ tmp_file.puts file_body
135
+ tmp_file.close
136
+ File.exist?(tmp_file.path).should be_true
137
+ File.stat(tmp_file.path).zero?.should be_false
138
+ File.delete(tmp_file.path).should eql(1)
139
+ File.exist?(tmp_file.path).should be_false
140
+ end
124
141
  end
125
142
 
126
- it "should test outputs" do
143
+ it "Gerar boleto nos formatos válidos" do
127
144
  @valid_attributes[:valor] = 135.00
128
145
  @valid_attributes[:data_documento] = Date.parse("2008-02-01")
129
146
  @valid_attributes[:dias_vencimento] = 0
130
147
  @valid_attributes[:numero_documento] = "7701684"
131
148
  @valid_attributes[:carteira] = "56"
132
- boleto_novo = BancoReal.new(@valid_attributes)
133
- boleto_novo.should be_instance_of(BancoReal)
149
+ boleto_novo = Brcobranca::Boleto::Real.new(@valid_attributes)
150
+
134
151
  %w| pdf jpg tif png ps |.each do |format|
135
- file_body=boleto_novo.to(format.to_sym)
152
+ file_body=boleto_novo.to(format)
136
153
  tmp_file=Tempfile.new("foobar." << format)
137
154
  tmp_file.puts file_body
138
155
  tmp_file.close
@@ -1,6 +1,7 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
3
 
3
- describe BancoUnibanco do
4
+ describe Brcobranca::Boleto::Unibanco do
4
5
  before(:each) do
5
6
  @valid_attributes = {
6
7
  :especie_documento => "DM",
@@ -17,13 +18,13 @@ describe BancoUnibanco do
17
18
  :sacado_documento => "12345678900",
18
19
  :agencia => "4042",
19
20
  :conta_corrente => "61900",
20
- :convenio => 12387989,
21
+ :convenio => 2031671,
21
22
  :numero_documento => "777700168"
22
23
  }
23
24
  end
24
25
 
25
- it "should create a new default instance" do
26
- boleto_novo = BancoUnibanco.new
26
+ it "Criar nova instancia com atributos padrões" do
27
+ boleto_novo = Brcobranca::Boleto::Unibanco.new
27
28
  boleto_novo.banco.should eql("409")
28
29
  boleto_novo.especie_documento.should eql("DM")
29
30
  boleto_novo.especie.should eql("R$")
@@ -37,11 +38,11 @@ describe BancoUnibanco do
37
38
  boleto_novo.valor_documento.should eql(0.0)
38
39
  boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
39
40
  boleto_novo.carteira.should eql("5")
40
- boleto_novo.should be_instance_of(BancoUnibanco)
41
+
41
42
  end
42
43
 
43
- it "should create a new instance given valid attributes" do
44
- boleto_novo = BancoUnibanco.new(@valid_attributes)
44
+ it "Criar nova instancia com atributos válidos" do
45
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
45
46
  boleto_novo.banco.should eql("409")
46
47
  boleto_novo.especie_documento.should eql("DM")
47
48
  boleto_novo.especie.should eql("R$")
@@ -58,15 +59,15 @@ describe BancoUnibanco do
58
59
  boleto_novo.documento_cedente.should eql("12345678912")
59
60
  boleto_novo.sacado.should eql("Claudio Pozzebom")
60
61
  boleto_novo.sacado_documento.should eql("12345678900")
61
- boleto_novo.conta_corrente.should eql("61900")
62
+ boleto_novo.conta_corrente.should eql("0061900")
62
63
  boleto_novo.agencia.should eql("4042")
63
- boleto_novo.convenio.should eql(12387989)
64
- boleto_novo.numero_documento.should eql("777700168")
64
+ boleto_novo.convenio.should eql("2031671")
65
+ boleto_novo.numero_documento.should eql("00000777700168")
65
66
  boleto_novo.carteira.should eql("5")
66
- boleto_novo.should be_instance_of(BancoUnibanco)
67
+
67
68
  end
68
69
 
69
- it "should mount a valid bank invoice para carteira registrada" do
70
+ it "Gerar boleto para carteira registrada" do
70
71
  @valid_attributes[:valor] = 2952.95
71
72
  @valid_attributes[:data_documento] = Date.parse("2009-04-30")
72
73
  @valid_attributes[:dias_vencimento] = 0
@@ -75,50 +76,39 @@ describe BancoUnibanco do
75
76
  @valid_attributes[:conta_corrente] = "100618"
76
77
  @valid_attributes[:agencia] = "0123"
77
78
  @valid_attributes[:convenio] = 2031671
78
- boleto_novo = BancoUnibanco.new(@valid_attributes)
79
- boleto_novo.should be_instance_of(BancoUnibanco)
79
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
80
+
80
81
  boleto_novo.nosso_numero_dv.should eql(5)
81
- boleto_novo.monta_codigo_43_digitos.should eql("4099422300002952950409043001236018030299015")
82
+ boleto_novo.codigo_barras_segunda_parte.should eql("0409043001236018030299015")
82
83
  boleto_novo.codigo_barras.should eql("40997422300002952950409043001236018030299015")
83
- boleto_novo.codigo_barras.linha_digitavel.should eql("40990.40901 43001.236017 80302.990157 7 42230000295295")
84
+ boleto_novo.codigo_barras.linha_digitavel.should eql("40990.40901 43001.236017 80302.990157 7 42230000295295")
84
85
  end
85
86
 
86
- it "should mount a valid bank invoice para carteira sem registro" do
87
+ it "Gerar boleto para carteira sem registro" do
87
88
  @valid_attributes[:valor] = 2952.95
88
89
  @valid_attributes[:data_documento] = Date.parse("2009-04-30")
89
90
  @valid_attributes[:dias_vencimento] = 0
90
- @valid_attributes[:numero_documento] = "1803029901"
91
91
  @valid_attributes[:carteira] = "5"
92
+ @valid_attributes[:numero_documento] = "1803029901"
92
93
  @valid_attributes[:conta_corrente] = "100618"
93
94
  @valid_attributes[:agencia] = "0123"
94
- @valid_attributes[:convenio] = 2031671
95
- boleto_novo = BancoUnibanco.new(@valid_attributes)
96
- boleto_novo.should be_instance_of(BancoUnibanco)
95
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
96
+
97
97
  boleto_novo.nosso_numero_dv.should eql(5)
98
- boleto_novo.monta_codigo_43_digitos.should eql("4099422300002952955203167100000018030299015")
98
+ boleto_novo.codigo_barras_segunda_parte.should eql("5203167100000018030299015")
99
99
  boleto_novo.codigo_barras.should eql("40995422300002952955203167100000018030299015")
100
100
  boleto_novo.codigo_barras.linha_digitavel.should eql("40995.20316 67100.000016 80302.990157 5 42230000295295")
101
101
  end
102
102
 
103
- it "should NOT mount a valid bank invoice" do
104
- @valid_attributes[:valor] = 0
105
- @valid_attributes[:data_documento] = Date.parse("2004-09-03")
106
- @valid_attributes[:dias_vencimento] = 0
107
- @valid_attributes[:numero_documento] = ""
108
- @valid_attributes[:carteira] = ""
109
- @valid_attributes[:conta_corrente] = ""
110
- @valid_attributes[:agencia] = ""
111
- boleto_novo = BancoUnibanco.new(@valid_attributes)
112
- boleto_novo.should be_instance_of(BancoUnibanco)
113
- lambda { boleto_novo.nosso_numero_dv }.should raise_error(ArgumentError)
114
-
115
- boleto_novo.monta_codigo_43_digitos.should be_nil
116
- boleto_novo.codigo_barras.should be_nil
103
+ it "Não permitir gerar boleto com atributos inválido" do
104
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(:numero_documento => "18030299444444444401")
105
+ lambda { boleto_novo.codigo_barras }.should raise_error(Brcobranca::BoletoInvalido)
106
+ boleto_novo.errors.count.should eql(3)
117
107
  end
118
-
119
- it "should mount nosso_numero_boleto" do
120
- boleto_novo = BancoUnibanco.new(@valid_attributes)
121
- boleto_novo.should be_instance_of(BancoUnibanco)
108
+
109
+ it "Montar nosso_numero_boleto" do
110
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
111
+
122
112
  boleto_novo.numero_documento = "85068014982"
123
113
  boleto_novo.nosso_numero_boleto.should eql("00085068014982-9")
124
114
  boleto_novo.nosso_numero_dv.should eql(9)
@@ -156,19 +146,25 @@ describe BancoUnibanco do
156
146
  boleto_novo.nosso_numero_boleto.should eql("00000000000719-6")
157
147
  boleto_novo.nosso_numero_dv.should eql(6)
158
148
  end
159
-
160
- it "should mount agencia_conta_boleto" do
149
+
150
+ it "Montar agencia_conta_boleto" do
161
151
  @valid_attributes[:conta_corrente] = "100618"
162
152
  @valid_attributes[:agencia] = "0123"
163
- boleto_novo = BancoUnibanco.new(@valid_attributes)
164
- boleto_novo.should be_instance_of(BancoUnibanco)
165
- boleto_novo.agencia_conta_boleto.should eql("0123 / 100618-5")
153
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
154
+
155
+ boleto_novo.agencia_conta_boleto.should eql("0123 / 0100618-5")
166
156
  boleto_novo.agencia = "0548"
167
157
  boleto_novo.conta_corrente = "1448"
168
- boleto_novo.agencia_conta_boleto.should eql("0548 / 1448-6")
158
+ boleto_novo.agencia_conta_boleto.should eql("0548 / 0001448-6")
159
+ end
160
+
161
+ it "Busca logotipo do banco" do
162
+ boleto_novo = Brcobranca::Boleto::Unibanco.new
163
+ File.exist?(boleto_novo.logotipo).should be_true
164
+ File.stat(boleto_novo.logotipo).zero?.should be_false
169
165
  end
170
-
171
- it "should test outputs" do
166
+
167
+ it "Gerar boleto nos formatos válidos com método to_" do
172
168
  @valid_attributes[:valor] = 2952.95
173
169
  @valid_attributes[:data_documento] = Date.parse("2009-04-30")
174
170
  @valid_attributes[:dias_vencimento] = 0
@@ -176,11 +172,32 @@ describe BancoUnibanco do
176
172
  @valid_attributes[:carteira] = "4"
177
173
  @valid_attributes[:conta_corrente] = "100618"
178
174
  @valid_attributes[:agencia] = "0123"
179
- @valid_attributes[:convenio] = 2031671
180
- boleto_novo = BancoUnibanco.new(@valid_attributes)
181
- boleto_novo.should be_instance_of(BancoUnibanco)
175
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
176
+
177
+ %w| pdf jpg tif png ps |.each do |format|
178
+ file_body=boleto_novo.send("to_#{format}".to_sym)
179
+ tmp_file=Tempfile.new("foobar." << format)
180
+ tmp_file.puts file_body
181
+ tmp_file.close
182
+ File.exist?(tmp_file.path).should be_true
183
+ File.stat(tmp_file.path).zero?.should be_false
184
+ File.delete(tmp_file.path).should eql(1)
185
+ File.exist?(tmp_file.path).should be_false
186
+ end
187
+ end
188
+
189
+ it "Gerar boleto nos formatos válidos" do
190
+ @valid_attributes[:valor] = 2952.95
191
+ @valid_attributes[:data_documento] = Date.parse("2009-04-30")
192
+ @valid_attributes[:dias_vencimento] = 0
193
+ @valid_attributes[:numero_documento] = "1803029901"
194
+ @valid_attributes[:carteira] = "4"
195
+ @valid_attributes[:conta_corrente] = "100618"
196
+ @valid_attributes[:agencia] = "0123"
197
+ boleto_novo = Brcobranca::Boleto::Unibanco.new(@valid_attributes)
198
+
182
199
  %w| pdf jpg tif png ps |.each do |format|
183
- file_body=boleto_novo.to(format.to_sym)
200
+ file_body=boleto_novo.to(format)
184
201
  tmp_file=Tempfile.new("foobar." << format)
185
202
  tmp_file.puts file_body
186
203
  tmp_file.close