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,3 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.dirname(__FILE__) + '/../spec_helper.rb'
2
3
 
3
4
  module Brcobranca #:nodoc:[all]
@@ -7,7 +8,6 @@ module Brcobranca #:nodoc:[all]
7
8
  @valid_attributes = {
8
9
  :especie_documento => "DM",
9
10
  :moeda => "9",
10
- :banco => "001",
11
11
  :data_documento => Date.today,
12
12
  :dias_vencimento => 1,
13
13
  :aceite => "S",
@@ -25,7 +25,7 @@ module Brcobranca #:nodoc:[all]
25
25
  }
26
26
  end
27
27
 
28
- it "should create a new default instance" do
28
+ it "Criar nova instancia com atributos padrões" do
29
29
  boleto_novo = Brcobranca::Boleto::Base.new
30
30
  boleto_novo.especie_documento.should eql("DM")
31
31
  boleto_novo.especie.should eql("R$")
@@ -38,12 +38,11 @@ module Brcobranca #:nodoc:[all]
38
38
  boleto_novo.valor.should eql(0.0)
39
39
  boleto_novo.valor_documento.should eql(0.0)
40
40
  boleto_novo.local_pagamento.should eql("QUALQUER BANCO ATÉ O VENCIMENTO")
41
- boleto_novo.should be_instance_of(Brcobranca::Boleto::Base)
41
+ boleto_novo.valid?.should be_false
42
42
  end
43
43
 
44
- it "should create a new instance given valid attributes" do
44
+ it "Criar nova instancia com atributos válidos" do
45
45
  boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
46
- boleto_novo.banco.should eql("001")
47
46
  boleto_novo.especie_documento.should eql("DM")
48
47
  boleto_novo.especie.should eql("R$")
49
48
  boleto_novo.moeda.should eql("9")
@@ -59,42 +58,14 @@ module Brcobranca #:nodoc:[all]
59
58
  boleto_novo.documento_cedente.should eql("12345678912")
60
59
  boleto_novo.sacado.should eql("Claudio Pozzebom")
61
60
  boleto_novo.sacado_documento.should eql("12345678900")
62
- boleto_novo.conta_corrente.should eql("61900")
61
+ boleto_novo.conta_corrente.should eql("0061900")
63
62
  boleto_novo.agencia.should eql("4042")
64
63
  boleto_novo.convenio.should eql(12387989)
65
64
  boleto_novo.numero_documento.should eql("777700168")
66
- boleto_novo.should be_instance_of(Brcobranca::Boleto::Base)
65
+ boleto_novo.valid?.should be_true
67
66
  end
68
67
 
69
- it "should calculate bando_dv" do
70
- boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
71
- boleto_novo.banco = "85068014982"
72
- boleto_novo.banco_dv.should eql(9)
73
- boleto_novo.banco = "05009401448"
74
- boleto_novo.banco_dv.should eql(1)
75
- boleto_novo.banco = "12387987777700168"
76
- boleto_novo.banco_dv.should eql(2)
77
- boleto_novo.banco = "4042"
78
- boleto_novo.banco_dv.should eql(8)
79
- boleto_novo.banco = "61900"
80
- boleto_novo.banco_dv.should eql(0)
81
- boleto_novo.banco = "0719"
82
- boleto_novo.banco_dv.should eql(6)
83
- boleto_novo.banco = 85068014982
84
- boleto_novo.banco_dv.should eql(9)
85
- boleto_novo.banco = 5009401448
86
- boleto_novo.banco_dv.should eql(1)
87
- boleto_novo.banco = 12387987777700168
88
- boleto_novo.banco_dv.should eql(2)
89
- boleto_novo.banco = 4042
90
- boleto_novo.banco_dv.should eql(8)
91
- boleto_novo.banco = 61900
92
- boleto_novo.banco_dv.should eql(0)
93
- boleto_novo.banco = 719
94
- boleto_novo.banco_dv.should eql(6)
95
- end
96
-
97
- it "should calculate agencia_dv" do
68
+ it "Calcula agencia_dv" do
98
69
  boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
99
70
  boleto_novo.agencia = "85068014982"
100
71
  boleto_novo.agencia_dv.should eql(9)
@@ -122,7 +93,7 @@ module Brcobranca #:nodoc:[all]
122
93
  boleto_novo.agencia_dv.should eql(6)
123
94
  end
124
95
 
125
- it "should calculate conta_corrente_dv" do
96
+ it "Calcula conta_corrente_dv" do
126
97
  boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
127
98
  boleto_novo.conta_corrente = "85068014982"
128
99
  boleto_novo.conta_corrente_dv.should eql(9)
@@ -150,36 +121,7 @@ module Brcobranca #:nodoc:[all]
150
121
  boleto_novo.conta_corrente_dv.should eql(6)
151
122
  end
152
123
 
153
- it "should calculate nosso_numero_dv" do
154
- boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
155
- boleto_novo.numero_documento = "85068014982"
156
- boleto_novo.nosso_numero.should eql("85068014982")
157
- boleto_novo.nosso_numero_dv.should eql(9)
158
- boleto_novo.numero_documento = "05009401448"
159
- boleto_novo.nosso_numero_dv.should eql(1)
160
- boleto_novo.numero_documento = "12387987777700168"
161
- boleto_novo.nosso_numero_dv.should eql(2)
162
- boleto_novo.numero_documento = "4042"
163
- boleto_novo.nosso_numero_dv.should eql(8)
164
- boleto_novo.numero_documento = "61900"
165
- boleto_novo.nosso_numero_dv.should eql(0)
166
- boleto_novo.numero_documento = "0719"
167
- boleto_novo.nosso_numero_dv.should eql(6)
168
- boleto_novo.numero_documento = 85068014982
169
- boleto_novo.nosso_numero_dv.should eql(9)
170
- boleto_novo.numero_documento = 5009401448
171
- boleto_novo.nosso_numero_dv.should eql(1)
172
- boleto_novo.numero_documento = 12387987777700168
173
- boleto_novo.nosso_numero_dv.should eql(2)
174
- boleto_novo.numero_documento = 4042
175
- boleto_novo.nosso_numero_dv.should eql(8)
176
- boleto_novo.numero_documento = 61900
177
- boleto_novo.nosso_numero_dv.should eql(0)
178
- boleto_novo.numero_documento = 719
179
- boleto_novo.nosso_numero_dv.should eql(6)
180
- end
181
-
182
- it "should return document value in float" do
124
+ it "Calcula o valor do documento" do
183
125
  boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
184
126
  boleto_novo.quantidade = 1
185
127
  boleto_novo.valor = 1
@@ -198,10 +140,10 @@ module Brcobranca #:nodoc:[all]
198
140
  boleto_novo.valor_documento.should eql(135.43)
199
141
  boleto_novo.quantidade = "gh"
200
142
  boleto_novo.valor = 135.43
201
- boleto_novo.valor_documento.should eql(0)
143
+ boleto_novo.valor_documento.should eql(0.0)
202
144
  end
203
145
 
204
- it "should return data_vencimento" do
146
+ it "Calcula data_vencimento" do
205
147
  boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
206
148
  boleto_novo.data_documento = Date.parse "2008-02-01"
207
149
  boleto_novo.dias_vencimento = 1
@@ -217,22 +159,25 @@ module Brcobranca #:nodoc:[all]
217
159
  boleto_novo.data_vencimento.should eql(Date.parse("2008-05-16"))
218
160
  boleto_novo.data_documento = Date.parse "2008-02-06"
219
161
  boleto_novo.dias_vencimento = "df"
220
- boleto_novo.data_vencimento.should be_nil
162
+ boleto_novo.data_vencimento.should eql(boleto_novo.data_documento)
221
163
  end
222
164
 
223
- it "should give a mensage" do
165
+ it "Mostrar aviso sobre sobrecarga de métodos padrões" do
224
166
  boleto_novo = Brcobranca::Boleto::Base.new(@valid_attributes)
225
- boleto_novo.monta_codigo_43_digitos.should eql("Sobreescreva este método na classe referente ao banco que você esta criando")
226
- boleto_novo.nosso_numero_boleto.should eql("Sobreescreva este método na classe referente ao banco que você esta criando")
227
- boleto_novo.agencia_conta_boleto.should eql("Sobreescreva este método na classe referente ao banco que você esta criando")
167
+ lambda { boleto_novo.codigo_barras_segunda_parte }.should raise_error(Brcobranca::NaoImplementado, "Sobreescreva este método na classe referente ao banco que você esta criando")
168
+ lambda { boleto_novo.nosso_numero_boleto }.should raise_error(Brcobranca::NaoImplementado, "Sobreescreva este método na classe referente ao banco que você esta criando")
169
+ lambda { boleto_novo.agencia_conta_boleto }.should raise_error(Brcobranca::NaoImplementado, "Sobreescreva este método na classe referente ao banco que você esta criando")
170
+ end
171
+
172
+ it "Incluir módulos de template na classe" do
173
+ Brcobranca::Boleto::Base.respond_to?(:lote).should be_true
174
+ Brcobranca::Boleto::Base.respond_to?(:to).should be_true
228
175
  end
229
176
 
230
- it "should validade module's inclusion" do
231
- Brcobranca::Config::OPCOES[:gerador] = 'rghost'
177
+ it "Incluir módulos de template na instancia" do
232
178
  boleto_novo = Brcobranca::Boleto::Base.new
233
- boleto_novo.class.included_modules.include?(RGhost).should be_true
234
- boleto_novo.class.included_modules.include?(Brcobranca::Boleto::Template::Rghost).should be_true
235
- boleto_novo.class.included_modules.include?(Brcobranca::Boleto::Template::Util).should be_true
179
+ boleto_novo.respond_to?(:lote).should be_true
180
+ boleto_novo.respond_to?(:to).should be_true
236
181
  end
237
182
 
238
183
  end
@@ -0,0 +1,46 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
3
+
4
+ describe "Muúltiplos boletos" do #:nodoc:[all]
5
+
6
+ before(:each) do
7
+ @valid_attributes = {
8
+ :especie_documento => "DM",
9
+ :moeda => "9",
10
+ :data_documento => Date.today,
11
+ :dias_vencimento => 1,
12
+ :aceite => "S",
13
+ :quantidade => 1,
14
+ :valor => 0.0,
15
+ :local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO",
16
+ :cedente => "Kivanio Barbosa",
17
+ :documento_cedente => "12345678912",
18
+ :sacado => "Claudio Pozzebom",
19
+ :sacado_documento => "12345678900",
20
+ :agencia => "4042",
21
+ :conta_corrente => "61900",
22
+ :convenio => 12387989,
23
+ :numero_documento => "777700168"
24
+ }
25
+ end
26
+
27
+ it "imprimir múltiplos boleto em lote" do
28
+ boleto_1 = Brcobranca::Boleto::BancoBrasil.new(@valid_attributes)
29
+ boleto_2 = Brcobranca::Boleto::Bradesco.new(@valid_attributes)
30
+ boleto_3 = Brcobranca::Boleto::BancoBrasil.new(@valid_attributes)
31
+
32
+ boletos = [boleto_1, boleto_2, boleto_3]
33
+
34
+ %w| pdf jpg tif png ps |.each do |format|
35
+ file_body=Brcobranca::Boleto::Base.lote(boletos, {:formato => "#{format}".to_sym})
36
+ tmp_file=Tempfile.new("foobar." << format)
37
+ tmp_file.puts file_body
38
+ tmp_file.close
39
+ File.exist?(tmp_file.path).should be_true
40
+ File.stat(tmp_file.path).zero?.should be_false
41
+ File.delete(tmp_file.path).should eql(1)
42
+ File.exist?(tmp_file.path).should be_false
43
+ end
44
+ end
45
+
46
+ end
@@ -1,23 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.dirname(__FILE__) + '/../spec_helper.rb'
2
3
 
3
4
  module Brcobranca
4
5
  describe Formatacao do
5
- it "should format CPF" do
6
+ it "Formata o CPF" do
6
7
  98789298790.to_br_cpf.should eql("987.892.987-90")
7
8
  "98789298790".to_br_cpf.should eql("987.892.987-90")
8
9
  end
9
10
 
10
- it "should format CEP" do
11
+ it "Formata o CEP" do
11
12
  85253100.to_br_cep.should eql("85253-100")
12
13
  "85253100".to_br_cep.should eql("85253-100")
13
14
  end
14
15
 
15
- it "should format CNPJ" do
16
+ it "Formata o CNPJ" do
16
17
  88394510000103.to_br_cnpj.should eql("88.394.510/0001-03")
17
18
  "88394510000103".to_br_cnpj.should eql("88.394.510/0001-03")
18
19
  end
19
20
 
20
- it "should format documents based in your lenght" do
21
+ it "Formata números automáticamente de acordo com o número de caracteres" do
21
22
  98789298790.formata_documento.should eql("987.892.987-90")
22
23
  "98789298790".formata_documento.should eql("987.892.987-90")
23
24
  85253100.formata_documento.should eql("85253-100")
@@ -28,44 +29,22 @@ module Brcobranca
28
29
  "8839451000010388394510000103".formata_documento.should eql("8839451000010388394510000103")
29
30
  end
30
31
 
31
- it "should fill with zeros at left until lenght seted" do
32
- "123".zeros_esquerda.should eql("123")
33
- "123".zeros_esquerda(:tamanho => 0).should eql("123")
34
- "123".zeros_esquerda(:tamanho => 1).should eql("123")
35
- "123".zeros_esquerda(:tamanho => 2).should eql("123")
36
- "123".zeros_esquerda(:tamanho => 3).should eql("123")
37
- "123".zeros_esquerda(:tamanho => 4).should eql("0123")
38
- "123".zeros_esquerda(:tamanho => 5).should eql("00123")
39
- "123".zeros_esquerda(:tamanho => 10).should eql("0000000123")
40
- "123".zeros_esquerda(:tamanho => 5).should be_a_kind_of(String)
41
-
42
- 123.zeros_esquerda.should eql("123")
43
- 123.zeros_esquerda(:tamanho => 0).should eql("123")
44
- 123.zeros_esquerda(:tamanho => 1).should eql("123")
45
- 123.zeros_esquerda(:tamanho => 2).should eql("123")
46
- 123.zeros_esquerda(:tamanho => 3).should eql("123")
47
- 123.zeros_esquerda(:tamanho => 4).should eql("0123")
48
- 123.zeros_esquerda(:tamanho => 5).should eql("00123")
49
- 123.zeros_esquerda(:tamanho => 10).should eql("0000000123")
50
- 123.zeros_esquerda(:tamanho => 5).should be_a_kind_of(String)
51
- end
52
-
53
- it "should mount linha digitavel" do
32
+ it "Monta linha digitável" do
54
33
  "00192376900000135000000001238798777770016818".linha_digitavel.should eql("00190.00009 01238.798779 77700.168188 2 37690000013500")
55
34
  "00192376900000135000000001238798777770016818".linha_digitavel.should be_a_kind_of(String)
56
35
  lambda { "".linha_digitavel }.should raise_error(ArgumentError)
57
36
  lambda { "00193373700".linha_digitavel }.should raise_error(ArgumentError)
58
37
  lambda { "0019337370000193373700".linha_digitavel }.should raise_error(ArgumentError)
59
38
  lambda { "00b193373700bb00193373700".linha_digitavel }.should raise_error(ArgumentError)
60
- lambda { "0019337370000193373700bbb".linha_digitavel }.should raise_error(ArgumentError)
61
- lambda { "0019237690000c135000c0000123f7987e7773016813".linha_digitavel }.should raise_error(ArgumentError)
62
39
  end
63
40
  end
64
41
 
65
42
  describe Calculo do
66
- it "should calculate mod10" do
43
+ it "Calcula módulo 10" do
67
44
  lambda { "".modulo10 }.should raise_error(ArgumentError)
68
45
  lambda { " ".modulo10 }.should raise_error(ArgumentError)
46
+ 0.modulo10.should eql(0)
47
+ "0".modulo10.should eql(0)
69
48
  "001905009".modulo10.should eql(5)
70
49
  "4014481606".modulo10.should eql(9)
71
50
  "0680935031".modulo10.should eql(4)
@@ -75,7 +54,6 @@ module Brcobranca
75
54
  "7123457000".modulo10.should eql(1)
76
55
  "00571234511012345678".modulo10.should eql(8)
77
56
  "001905009".modulo10.should be_a_kind_of(Fixnum)
78
- 0.modulo10.should eql(0)
79
57
  1905009.modulo10.should eql(5)
80
58
  4014481606.modulo10.should eql(9)
81
59
  680935031.modulo10.should eql(4)
@@ -83,14 +61,14 @@ module Brcobranca
83
61
  1905009.modulo10.should be_a_kind_of(Fixnum)
84
62
  end
85
63
 
86
- it "should calculate mo10_banespa" do
64
+ it "Calcula módulo 10 para o banespa" do
87
65
  "4007469108".modulo_10_banespa.should eql(1)
88
66
  4007469108.modulo_10_banespa.should eql(1)
89
67
  "1237469108".modulo_10_banespa.should eql(3)
90
68
  1237469108.modulo_10_banespa.should eql(3)
91
69
  end
92
70
 
93
- it "should test multiplicador" do
71
+ it "Multiplicador" do
94
72
  "85068014982".multiplicador([2,3,4,5,6,7,8,9]).should eql(255)
95
73
  "05009401448".multiplicador([2,3,4,5,6,7,8,9]).should eql(164)
96
74
  "12387987777700168".multiplicador([2,3,4,5,6,7,8,9]).should eql(460)
@@ -106,7 +84,7 @@ module Brcobranca
106
84
  lambda { "2582fd81".multiplicador([2,3,4,5,6,7,8,9]) }.should raise_error(ArgumentError)
107
85
  end
108
86
 
109
- it "should calculate mo11 - 9to2" do
87
+ it "Calcula módulo 11 de 9 para 2" do
110
88
  "85068014982".modulo11_9to2.should eql(9)
111
89
  "05009401448".modulo11_9to2.should eql(1)
112
90
  "12387987777700168".modulo11_9to2.should eql(2)
@@ -138,7 +116,7 @@ module Brcobranca
138
116
  lambda { "2582fd81".modulo11_9to2 }.should raise_error(ArgumentError)
139
117
  end
140
118
 
141
- it "should calculate mod11 - 9to2, X instead of 10" do
119
+ it "Calcula módulo 11 de 9 para 2, trocando resto 10 por X" do
142
120
  "85068014982".modulo11_9to2_10_como_x.should eql(9)
143
121
  "05009401448".modulo11_9to2_10_como_x.should eql(1)
144
122
  "12387987777700168".modulo11_9to2_10_como_x.should eql(2)
@@ -155,7 +133,7 @@ module Brcobranca
155
133
  lambda { "2582fd81".modulo11_9to2_10_como_x }.should raise_error(ArgumentError)
156
134
  end
157
135
 
158
- it "should calculate mod11 - 2to9" do
136
+ it "Calcula módulo 11 de 2 para 9" do
159
137
  "0019373700000001000500940144816060680935031".modulo11_2to9.should eql(3)
160
138
  "0019373700000001000500940144816060680935031".modulo11_2to9.should be_a_kind_of(Fixnum)
161
139
  "3419166700000123451101234567880057123457000".modulo11_2to9.should eql(6)
@@ -164,106 +142,38 @@ module Brcobranca
164
142
  lambda { "2582fd81".modulo11_2to9 }.should raise_error(ArgumentError)
165
143
  end
166
144
 
167
- it "should calculate digit's sum side by side" do
145
+ it "Calcula a soma dos digitos de um número com mais de 1 algarismo" do
168
146
  111.soma_digitos.should eql(3)
169
147
  8.soma_digitos.should eql(8)
170
148
  "111".soma_digitos.should eql(3)
171
149
  "8".soma_digitos.should eql(8)
150
+ 0.soma_digitos.should eql(0)
172
151
  111.soma_digitos.should be_a_kind_of(Fixnum)
173
152
  "111".soma_digitos.should be_a_kind_of(Fixnum)
174
153
  end
175
154
  end
176
155
 
177
- describe Validacao do
178
- it "should return true when value is a currency" do
179
- 1234.03.to_s.moeda?.should be_true
180
- +1234.03.to_s.moeda?.should be_true
181
- -1234.03.to_s.moeda?.should be_true
182
- 1234.03.moeda?.should be_true
183
- +1234.03.moeda?.should be_true
184
- -1234.03.moeda?.should be_true
185
- "1234.03".moeda?.should be_true
186
- "1234,03".moeda?.should be_true
187
- "1,234.03".moeda?.should be_true
188
- "1.234.03".moeda?.should be_true
189
- "1,234,03".moeda?.should be_true
190
- "12.340,03".moeda?.should be_true
191
- "+1234.03".moeda?.should be_true
192
- "+1234,03".moeda?.should be_true
193
- "+1,234.03".moeda?.should be_true
194
- "+1.234.03".moeda?.should be_true
195
- "+1,234,03".moeda?.should be_true
196
- "+12.340,03".moeda?.should be_true
197
- "-1234.03".moeda?.should be_true
198
- "-1234,03".moeda?.should be_true
199
- "-1,234.03".moeda?.should be_true
200
- "-1.234.03".moeda?.should be_true
201
- "-1,234,03".moeda?.should be_true
202
- "-12.340,03".moeda?.should be_true
203
- end
204
-
205
- it "should return false when value is NOT a currency" do
206
- 123403.to_s.moeda?.should be_false
207
- -123403.to_s.moeda?.should be_false
208
- +123403.to_s.moeda?.should be_false
209
- 123403.moeda?.should be_false
210
- -123403.moeda?.should be_false
211
- +123403.moeda?.should be_false
212
- "1234ab".moeda?.should be_false
213
- "ab1213".moeda?.should be_false
214
- "ffab".moeda?.should be_false
215
- "1234".moeda?.should be_false
216
- "23[;)]ddf".moeda?.should be_false
217
- end
218
- end
219
-
220
156
  describe Limpeza do
221
- it "should return just numbers when value is a currency" do
157
+ it "Formata Float em String" do
222
158
  1234.03.limpa_valor_moeda.should == "123403"
223
- +1234.03.limpa_valor_moeda.limpa_valor_moeda.should == "123403"
224
- -1234.03.limpa_valor_moeda.limpa_valor_moeda.should == "123403"
225
- "1234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
226
- "1234,03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
227
- "1,234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
228
- "1.234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
229
- "1,234,03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
230
- "12.340,03".limpa_valor_moeda.limpa_valor_moeda.should == "1234003"
231
- "+1234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
232
- "+1234,03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
233
- "+1,234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
234
- "+1.234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
235
- "+1,234,03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
236
- "+12.340,03".limpa_valor_moeda.limpa_valor_moeda.should == "1234003"
237
- "-1234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
238
- "-1234,03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
239
- "-1,234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
240
- "-1.234.03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
241
- "-1,234,03".limpa_valor_moeda.limpa_valor_moeda.should == "123403"
242
- "-12.340,03".limpa_valor_moeda.limpa_valor_moeda.should == "1234003"
243
- end
244
-
245
- it "should NOT modify value when it is NOT a currency" do
246
- "1234ab".limpa_valor_moeda.limpa_valor_moeda.should == "1234ab"
247
- "ab1213".limpa_valor_moeda.limpa_valor_moeda.should == "ab1213"
248
- "ffab".limpa_valor_moeda.limpa_valor_moeda.should == "ffab"
249
- "1234".limpa_valor_moeda.limpa_valor_moeda.should == "1234"
159
+ 1234.3.limpa_valor_moeda.should == "123430"
250
160
  end
251
161
  end
252
162
 
253
163
  describe CalculoData do
254
- it "should return number of days between Date and 1997-10-07" do
255
- (Date.parse "2008-02-01").fator_vencimento.should == 3769
256
- (Date.parse "2008-02-02").fator_vencimento.should == 3770
257
- (Date.parse "2008-02-06").fator_vencimento.should == 3774
164
+ it "Calcula o fator de vencimento" do
165
+ (Date.parse "2008-02-01").fator_vencimento.should == "3769"
166
+ (Date.parse "2008-02-02").fator_vencimento.should == "3770"
167
+ (Date.parse "2008-02-06").fator_vencimento.should == "3774"
258
168
  end
259
169
 
260
- it "should format Date to Brazillian format" do
170
+ it "Formata a data no padrão visual brasileiro" do
261
171
  (Date.parse "2008-02-01").to_s_br.should == "01/02/2008"
262
172
  (Date.parse "2008-02-02").to_s_br.should == "02/02/2008"
263
173
  (Date.parse "2008-02-06").to_s_br.should == "06/02/2008"
264
174
  end
265
175
 
266
- it "should calculate julian date from a Date" do
176
+ it "Calcula data juliana" do
267
177
  (Date.parse "2009-02-11").to_juliano.should eql("0429")
268
178
  (Date.parse "2008-02-11").to_juliano.should eql("0428")
269
179
  (Date.parse "2009-04-08").to_juliano.should eql("0989")
@@ -1,3 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  require File.dirname(__FILE__) + '/../spec_helper.rb'
2
3
 
3
4
  module Brcobranca #:nodoc:[all]