brcobranca 3.1.3 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +11 -0
- data/Gemfile +2 -6
- data/Gemfile.lock +72 -23
- data/README.md +64 -0
- data/Rakefile +4 -8
- data/brcobranca.gemspec +27 -27
- data/lib/brcobranca/boleto/caixa.rb +2 -1
- data/lib/brcobranca/boleto/hsbc.rb +41 -22
- data/lib/brcobranca/boleto/sicredi.rb +10 -5
- data/lib/brcobranca/boleto/template/base.rb +2 -0
- data/lib/brcobranca/calculo.rb +0 -18
- data/lib/brcobranca/formatacao.rb +8 -8
- data/lib/brcobranca/retorno/retorno_cbr643.rb +2 -0
- data/lib/brcobranca/retorno/retorno_cnab240.rb +2 -0
- data/lib/brcobranca/retorno/retorno_cnab400.rb +2 -0
- data/lib/brcobranca/version.rb +3 -1
- data/lib/brcobranca.rb +3 -5
- data/spec/brcobranca/banco_bradesco_spec.rb +70 -70
- data/spec/brcobranca/banco_brasil_spec.rb +119 -119
- data/spec/brcobranca/banco_caixa_spec.rb +57 -58
- data/spec/brcobranca/banco_hsbc_spec.rb +74 -84
- data/spec/brcobranca/banco_sicredi_spec.rb +54 -54
- data/spec/brcobranca/base_spec.rb +77 -77
- data/spec/brcobranca/boletos_em_lote_spec.rb +6 -6
- data/spec/brcobranca/core_ext_spec.rb +128 -127
- data/spec/brcobranca/currency_spec.rb +52 -52
- data/spec/brcobranca/itau_spec.rb +81 -81
- data/spec/brcobranca/retorno_cbr643_spec.rb +25 -25
- data/spec/brcobranca/retorno_cnab400_spec.rb +23 -23
- data/spec/brcobranca/retorno_cnab_240_spec.rb +20 -20
- data/spec/brcobranca/rghost_spec.rb +5 -5
- data/spec/brcobranca/santander_spec.rb +58 -58
- data/spec/brcobranca_spec.rb +5 -5
- data/spec/spec.opts +8 -0
- data/spec/spec_helper.rb +10 -7
- metadata +123 -108
- data/.document +0 -5
- data/README.rdoc +0 -92
- data/lib/brcobranca/arquivos/logos/banespa.jpg +0 -0
- data/lib/brcobranca/arquivos/logos/real.jpg +0 -0
- data/lib/brcobranca/arquivos/logos/unibanco.jpg +0 -0
- data/lib/brcobranca/boleto/real.rb +0 -74
- data/lib/brcobranca/boleto/unibanco.rb +0 -115
- data/spec/brcobranca/banco_real_spec.rb +0 -162
- data/spec/brcobranca/banco_unibanco_spec.rb +0 -210
@@ -1,184 +1,185 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
module Brcobranca
|
5
5
|
describe Formatacao do
|
6
6
|
it "Formata o CPF" do
|
7
|
-
98789298790.to_br_cpf.
|
8
|
-
"98789298790".to_br_cpf.
|
7
|
+
expect(98789298790.to_br_cpf).to eql("987.892.987-90")
|
8
|
+
expect("98789298790".to_br_cpf).to eql("987.892.987-90")
|
9
|
+
expect("987.892.987-90".to_br_cpf).to eql("987.892.987-90")
|
9
10
|
end
|
10
11
|
|
11
12
|
it "Formata o CEP" do
|
12
|
-
85253100.to_br_cep.
|
13
|
-
"85253100".to_br_cep.
|
13
|
+
expect(85253100.to_br_cep).to eql("85253-100")
|
14
|
+
expect("85253100".to_br_cep).to eql("85253-100")
|
15
|
+
expect("85253-100".to_br_cep).to eql("85253-100")
|
14
16
|
end
|
15
17
|
|
16
18
|
it "Formata o CNPJ" do
|
17
|
-
88394510000103.to_br_cnpj.
|
18
|
-
"88394510000103".to_br_cnpj.
|
19
|
+
expect(88394510000103.to_br_cnpj).to eql("88.394.510/0001-03")
|
20
|
+
expect("88394510000103".to_br_cnpj).to eql("88.394.510/0001-03")
|
21
|
+
expect("88.394.510/0001-03".to_br_cnpj).to eql("88.394.510/0001-03")
|
19
22
|
end
|
20
23
|
|
21
24
|
it "Formata números automáticamente de acordo com o número de caracteres" do
|
22
|
-
98789298790.formata_documento.
|
23
|
-
"98789298790".formata_documento.
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
"
|
28
|
-
|
29
|
-
"
|
25
|
+
expect(98789298790.formata_documento).to eql("987.892.987-90")
|
26
|
+
expect("98789298790".formata_documento).to eql("987.892.987-90")
|
27
|
+
expect("987.892.987-90".formata_documento).to eql("987.892.987-90")
|
28
|
+
expect(85253100.formata_documento).to eql("85253-100")
|
29
|
+
expect("85253100".formata_documento).to eql("85253-100")
|
30
|
+
expect("85253-100".formata_documento).to eql("85253-100")
|
31
|
+
expect(88394510000103.formata_documento).to eql("88.394.510/0001-03")
|
32
|
+
expect("88394510000103".formata_documento).to eql("88.394.510/0001-03")
|
33
|
+
expect("88.394.510/0001-03".formata_documento).to eql("88.394.510/0001-03")
|
34
|
+
expect("8839".formata_documento).to eql("8839")
|
35
|
+
expect("8839451000010388394510000103".formata_documento).to eql("8839451000010388394510000103")
|
30
36
|
end
|
31
37
|
|
32
38
|
it "Monta linha digitável" do
|
33
|
-
"00192376900000135000000001238798777770016818".linha_digitavel.
|
34
|
-
"00192376900000135000000001238798777770016818".linha_digitavel.
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
+
expect("00192376900000135000000001238798777770016818".linha_digitavel).to eql("00190.00009 01238.798779 77700.168188 2 37690000013500")
|
40
|
+
expect("00192376900000135000000001238798777770016818".linha_digitavel).to be_a_kind_of(String)
|
41
|
+
expect { "".linha_digitavel }.to raise_error(ArgumentError)
|
42
|
+
expect { "00193373700".linha_digitavel }.to raise_error(ArgumentError)
|
43
|
+
expect { "0019337370000193373700".linha_digitavel }.to raise_error(ArgumentError)
|
44
|
+
expect { "00b193373700bb00193373700".linha_digitavel }.to raise_error(ArgumentError)
|
39
45
|
end
|
40
46
|
end
|
41
47
|
|
42
48
|
describe Calculo do
|
43
49
|
it "Calcula módulo 10" do
|
44
|
-
|
45
|
-
|
46
|
-
0.modulo10.
|
47
|
-
"0".modulo10.
|
48
|
-
"001905009".modulo10.
|
49
|
-
"4014481606".modulo10.
|
50
|
-
"0680935031".modulo10.
|
51
|
-
"29004590".modulo10.
|
52
|
-
"341911012".modulo10.
|
53
|
-
"3456788005".modulo10.
|
54
|
-
"7123457000".modulo10.
|
55
|
-
"00571234511012345678".modulo10.
|
56
|
-
"001905009".modulo10.
|
57
|
-
1905009.modulo10.
|
58
|
-
4014481606.modulo10.
|
59
|
-
680935031.modulo10.
|
60
|
-
29004590.modulo10.
|
61
|
-
1905009.modulo10.
|
62
|
-
end
|
63
|
-
|
64
|
-
it "Calcula módulo 10 para o banespa" do
|
65
|
-
"4007469108".modulo_10_banespa.should eql(1)
|
66
|
-
4007469108.modulo_10_banespa.should eql(1)
|
67
|
-
"1237469108".modulo_10_banespa.should eql(3)
|
68
|
-
1237469108.modulo_10_banespa.should eql(3)
|
50
|
+
expect { "".modulo10 }.to raise_error(ArgumentError)
|
51
|
+
expect { " ".modulo10 }.to raise_error(ArgumentError)
|
52
|
+
expect(0.modulo10).to eql(0)
|
53
|
+
expect("0".modulo10).to eql(0)
|
54
|
+
expect("001905009".modulo10).to eql(5)
|
55
|
+
expect("4014481606".modulo10).to eql(9)
|
56
|
+
expect("0680935031".modulo10).to eql(4)
|
57
|
+
expect("29004590".modulo10).to eql(5)
|
58
|
+
expect("341911012".modulo10).to eql(1)
|
59
|
+
expect("3456788005".modulo10).to eql(8)
|
60
|
+
expect("7123457000".modulo10).to eql(1)
|
61
|
+
expect("00571234511012345678".modulo10).to eql(8)
|
62
|
+
expect("001905009".modulo10).to be_a_kind_of(Fixnum)
|
63
|
+
expect(1905009.modulo10).to eql(5)
|
64
|
+
expect(4014481606.modulo10).to eql(9)
|
65
|
+
expect(680935031.modulo10).to eql(4)
|
66
|
+
expect(29004590.modulo10).to eql(5)
|
67
|
+
expect(1905009.modulo10).to be_a_kind_of(Fixnum)
|
69
68
|
end
|
70
69
|
|
71
70
|
it "Multiplicador" do
|
72
|
-
"85068014982".multiplicador([2,3,4,5,6,7,8,9]).
|
73
|
-
"05009401448".multiplicador([2,3,4,5,6,7,8,9]).
|
74
|
-
"12387987777700168".multiplicador([2,3,4,5,6,7,8,9]).
|
75
|
-
"34230".multiplicador([2,3,4,5,6,7,8,9]).
|
76
|
-
"258281".multiplicador([2,3,4,5,6,7,8,9]).
|
77
|
-
"5444".multiplicador([2,3,4,5,6,7,8,9]).
|
78
|
-
"000000005444".multiplicador([2,3,4,5,6,7,8,9]).
|
79
|
-
85068014982.multiplicador([2,3,4,5,6,7,8,9]).
|
80
|
-
5009401448.multiplicador([2,3,4,5,6,7,8,9]).
|
81
|
-
5444.multiplicador([2,3,4,5,6,7,8,9]).
|
82
|
-
1129004590.multiplicador([2,3,4,5,6,7,8,9]).
|
83
|
-
5444.multiplicador([2,3,4,5,6,7,8,9]).
|
84
|
-
|
71
|
+
expect("85068014982".multiplicador([2,3,4,5,6,7,8,9])).to eql(255)
|
72
|
+
expect("05009401448".multiplicador([2,3,4,5,6,7,8,9])).to eql(164)
|
73
|
+
expect("12387987777700168".multiplicador([2,3,4,5,6,7,8,9])).to eql(460)
|
74
|
+
expect("34230".multiplicador([2,3,4,5,6,7,8,9])).to eql(55)
|
75
|
+
expect("258281".multiplicador([2,3,4,5,6,7,8,9])).to eql(118)
|
76
|
+
expect("5444".multiplicador([2,3,4,5,6,7,8,9])).to be_a_kind_of(Fixnum)
|
77
|
+
expect("000000005444".multiplicador([2,3,4,5,6,7,8,9])).to be_a_kind_of(Fixnum)
|
78
|
+
expect(85068014982.multiplicador([2,3,4,5,6,7,8,9])).to eql(255)
|
79
|
+
expect(5009401448.multiplicador([2,3,4,5,6,7,8,9])).to eql(164)
|
80
|
+
expect(5444.multiplicador([2,3,4,5,6,7,8,9])).to eql(61)
|
81
|
+
expect(1129004590.multiplicador([2,3,4,5,6,7,8,9])).to eql(162)
|
82
|
+
expect(5444.multiplicador([2,3,4,5,6,7,8,9])).to be_a_kind_of(Fixnum)
|
83
|
+
expect { "2582fd81".multiplicador([2,3,4,5,6,7,8,9]) }.to raise_error(ArgumentError)
|
85
84
|
end
|
86
85
|
|
87
86
|
it "Calcula módulo 11 de 9 para 2" do
|
88
|
-
"85068014982".modulo11_9to2.
|
89
|
-
"05009401448".modulo11_9to2.
|
90
|
-
"12387987777700168".modulo11_9to2.
|
91
|
-
"4042".modulo11_9to2.
|
92
|
-
"61900".modulo11_9to2.
|
93
|
-
"0719".modulo11_9to2.
|
94
|
-
"000000005444".modulo11_9to2.
|
95
|
-
"5444".modulo11_9to2.
|
96
|
-
"01129004590".modulo11_9to2.
|
97
|
-
"15735".modulo11_9to2.
|
98
|
-
"777700168".modulo11_9to2.
|
99
|
-
"77700168".modulo11_9to2.
|
100
|
-
"00015448".modulo11_9to2.
|
101
|
-
"15448".modulo11_9to2.
|
102
|
-
"12345678".modulo11_9to2.
|
103
|
-
"34230".modulo11_9to2.
|
104
|
-
"258281".modulo11_9to2.
|
105
|
-
"5444".modulo11_9to2.
|
106
|
-
"000000005444".modulo11_9to2.
|
107
|
-
85068014982.modulo11_9to2.
|
108
|
-
5009401448.modulo11_9to2.
|
109
|
-
12387987777700168.modulo11_9to2.
|
110
|
-
4042.modulo11_9to2.
|
111
|
-
61900.modulo11_9to2.
|
112
|
-
719.modulo11_9to2.
|
113
|
-
5444.modulo11_9to2.
|
114
|
-
1129004590.modulo11_9to2.
|
115
|
-
5444.modulo11_9to2.
|
116
|
-
|
87
|
+
expect("85068014982".modulo11_9to2).to eql(9)
|
88
|
+
expect("05009401448".modulo11_9to2).to eql(1)
|
89
|
+
expect("12387987777700168".modulo11_9to2).to eql(2)
|
90
|
+
expect("4042".modulo11_9to2).to eql(8)
|
91
|
+
expect("61900".modulo11_9to2).to eql(0)
|
92
|
+
expect("0719".modulo11_9to2).to eql(6)
|
93
|
+
expect("000000005444".modulo11_9to2).to eql(5)
|
94
|
+
expect("5444".modulo11_9to2).to eql(5)
|
95
|
+
expect("01129004590".modulo11_9to2).to eql(3)
|
96
|
+
expect("15735".modulo11_9to2).to eql(10)
|
97
|
+
expect("777700168".modulo11_9to2).to eql(0)
|
98
|
+
expect("77700168".modulo11_9to2).to eql(3)
|
99
|
+
expect("00015448".modulo11_9to2).to eql(2)
|
100
|
+
expect("15448".modulo11_9to2).to eql(2)
|
101
|
+
expect("12345678".modulo11_9to2).to eql(9)
|
102
|
+
expect("34230".modulo11_9to2).to eql(0)
|
103
|
+
expect("258281".modulo11_9to2).to eql(3)
|
104
|
+
expect("5444".modulo11_9to2).to be_a_kind_of(Fixnum)
|
105
|
+
expect("000000005444".modulo11_9to2).to be_a_kind_of(Fixnum)
|
106
|
+
expect(85068014982.modulo11_9to2).to eql(9)
|
107
|
+
expect(5009401448.modulo11_9to2).to eql(1)
|
108
|
+
expect(12387987777700168.modulo11_9to2).to eql(2)
|
109
|
+
expect(4042.modulo11_9to2).to eql(8)
|
110
|
+
expect(61900.modulo11_9to2).to eql(0)
|
111
|
+
expect(719.modulo11_9to2).to eql(6)
|
112
|
+
expect(5444.modulo11_9to2).to eql(5)
|
113
|
+
expect(1129004590.modulo11_9to2).to eql(3)
|
114
|
+
expect(5444.modulo11_9to2).to be_a_kind_of(Fixnum)
|
115
|
+
expect { "2582fd81".modulo11_9to2 }.to raise_error(ArgumentError)
|
117
116
|
end
|
118
117
|
|
119
118
|
it "Calcula módulo 11 de 9 para 2, trocando resto 10 por X" do
|
120
|
-
"85068014982".modulo11_9to2_10_como_x.
|
121
|
-
"05009401448".modulo11_9to2_10_como_x.
|
122
|
-
"12387987777700168".modulo11_9to2_10_como_x.
|
123
|
-
"4042".modulo11_9to2_10_como_x.
|
124
|
-
"61900".modulo11_9to2_10_como_x.
|
125
|
-
"0719".modulo11_9to2_10_como_x.
|
126
|
-
"000000005444".modulo11_9to2_10_como_x.
|
127
|
-
"5444".modulo11_9to2_10_como_x.
|
128
|
-
"01129004590".modulo11_9to2_10_como_x.
|
129
|
-
"15735".modulo11_9to2_10_como_x.
|
130
|
-
"15735".modulo11_9to2_10_como_x.
|
131
|
-
"5444".modulo11_9to2_10_como_x.
|
132
|
-
"000000005444".modulo11_9to2_10_como_x.
|
133
|
-
|
119
|
+
expect("85068014982".modulo11_9to2_10_como_x).to eql(9)
|
120
|
+
expect("05009401448".modulo11_9to2_10_como_x).to eql(1)
|
121
|
+
expect("12387987777700168".modulo11_9to2_10_como_x).to eql(2)
|
122
|
+
expect("4042".modulo11_9to2_10_como_x).to eql(8)
|
123
|
+
expect("61900".modulo11_9to2_10_como_x).to eql(0)
|
124
|
+
expect("0719".modulo11_9to2_10_como_x).to eql(6)
|
125
|
+
expect("000000005444".modulo11_9to2_10_como_x).to eql(5)
|
126
|
+
expect("5444".modulo11_9to2_10_como_x).to eql(5)
|
127
|
+
expect("01129004590".modulo11_9to2_10_como_x).to eql(3)
|
128
|
+
expect("15735".modulo11_9to2_10_como_x).to eql("X")
|
129
|
+
expect("15735".modulo11_9to2_10_como_x).to be_a_kind_of(String)
|
130
|
+
expect("5444".modulo11_9to2_10_como_x).to be_a_kind_of(Fixnum)
|
131
|
+
expect("000000005444".modulo11_9to2_10_como_x).to be_a_kind_of(Fixnum)
|
132
|
+
expect { "2582fd81".modulo11_9to2_10_como_x }.to raise_error(ArgumentError)
|
134
133
|
end
|
135
134
|
|
136
135
|
it "Calcula módulo 11 de 2 para 9" do
|
137
|
-
"0019373700000001000500940144816060680935031".modulo11_2to9.
|
138
|
-
"0019373700000001000500940144816060680935031".modulo11_2to9.
|
139
|
-
"3419166700000123451101234567880057123457000".modulo11_2to9.
|
140
|
-
|
141
|
-
|
142
|
-
|
136
|
+
expect("0019373700000001000500940144816060680935031".modulo11_2to9).to eql(3)
|
137
|
+
expect("0019373700000001000500940144816060680935031".modulo11_2to9).to be_a_kind_of(Fixnum)
|
138
|
+
expect("3419166700000123451101234567880057123457000".modulo11_2to9).to eql(6)
|
139
|
+
expect("7459588800000774303611264424020000000002674".modulo11_2to9).to eql(4)
|
140
|
+
expect("7459588800000580253611264424020000000003131".modulo11_2to9).to eql(1)
|
141
|
+
expect(19373700000001000500940144816060680935031.modulo11_2to9).to eql(3)
|
142
|
+
expect(19373700000001000500940144816060680935031.modulo11_2to9).to be_a_kind_of(Fixnum)
|
143
|
+
expect { "2582fd81".modulo11_2to9 }.to raise_error(ArgumentError)
|
143
144
|
end
|
144
145
|
|
145
146
|
it "Calcula a soma dos digitos de um número com mais de 1 algarismo" do
|
146
|
-
111.soma_digitos.
|
147
|
-
8.soma_digitos.
|
148
|
-
"111".soma_digitos.
|
149
|
-
"8".soma_digitos.
|
150
|
-
0.soma_digitos.
|
151
|
-
111.soma_digitos.
|
152
|
-
"111".soma_digitos.
|
147
|
+
expect(111.soma_digitos).to eql(3)
|
148
|
+
expect(8.soma_digitos).to eql(8)
|
149
|
+
expect("111".soma_digitos).to eql(3)
|
150
|
+
expect("8".soma_digitos).to eql(8)
|
151
|
+
expect(0.soma_digitos).to eql(0)
|
152
|
+
expect(111.soma_digitos).to be_a_kind_of(Fixnum)
|
153
|
+
expect("111".soma_digitos).to be_a_kind_of(Fixnum)
|
153
154
|
end
|
154
155
|
end
|
155
156
|
|
156
157
|
describe Limpeza do
|
157
158
|
it "Formata Float em String" do
|
158
|
-
1234.03.limpa_valor_moeda.
|
159
|
-
1234.3.limpa_valor_moeda.
|
159
|
+
expect(1234.03.limpa_valor_moeda).to eq("123403")
|
160
|
+
expect(1234.3.limpa_valor_moeda).to eq("123430")
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
163
164
|
describe CalculoData do
|
164
165
|
it "Calcula o fator de vencimento" do
|
165
|
-
(Date.parse "2008-02-01").fator_vencimento.
|
166
|
-
(Date.parse "2008-02-02").fator_vencimento.
|
167
|
-
(Date.parse "2008-02-06").fator_vencimento.
|
166
|
+
expect((Date.parse "2008-02-01").fator_vencimento).to eq("3769")
|
167
|
+
expect((Date.parse "2008-02-02").fator_vencimento).to eq("3770")
|
168
|
+
expect((Date.parse "2008-02-06").fator_vencimento).to eq("3774")
|
168
169
|
end
|
169
170
|
|
170
171
|
it "Formata a data no padrão visual brasileiro" do
|
171
|
-
(Date.parse "2008-02-01").to_s_br.
|
172
|
-
(Date.parse "2008-02-02").to_s_br.
|
173
|
-
(Date.parse "2008-02-06").to_s_br.
|
172
|
+
expect((Date.parse "2008-02-01").to_s_br).to eq("01/02/2008")
|
173
|
+
expect((Date.parse "2008-02-02").to_s_br).to eq("02/02/2008")
|
174
|
+
expect((Date.parse "2008-02-06").to_s_br).to eq("06/02/2008")
|
174
175
|
end
|
175
176
|
|
176
177
|
it "Calcula data juliana" do
|
177
|
-
(Date.parse "2009-02-11").to_juliano.
|
178
|
-
(Date.parse "2008-02-11").to_juliano.
|
179
|
-
(Date.parse "2009-04-08").to_juliano.
|
178
|
+
expect((Date.parse "2009-02-11").to_juliano).to eql("0429")
|
179
|
+
expect((Date.parse "2008-02-11").to_juliano).to eql("0428")
|
180
|
+
expect((Date.parse "2009-04-08").to_juliano).to eql("0989")
|
180
181
|
# Ano 2008 eh bisexto
|
181
|
-
(Date.parse "2008-04-08").to_juliano.
|
182
|
+
expect((Date.parse "2008-04-08").to_juliano).to eql("0998")
|
182
183
|
end
|
183
184
|
end
|
184
185
|
|
@@ -1,81 +1,81 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
require
|
2
|
+
require 'spec_helper'
|
3
3
|
|
4
4
|
module Brcobranca #:nodoc:[all]
|
5
5
|
module Currency #:nodoc:[all]
|
6
6
|
describe String do
|
7
7
|
it "should return true if value seted is a valid ruby number" do
|
8
|
-
"1234".numeric
|
9
|
-
"123.4".numeric
|
10
|
-
"123,4".numeric
|
11
|
-
"1234.03".numeric
|
12
|
-
"1234,03".numeric
|
13
|
-
"-1234".numeric
|
14
|
-
"-123.4".numeric
|
15
|
-
"-123,4".numeric
|
16
|
-
"-1234.03".numeric
|
17
|
-
"-1234,03".numeric
|
18
|
-
"+1234".numeric
|
19
|
-
"+123.4".numeric
|
20
|
-
"+123,4".numeric
|
21
|
-
"+1234.03".numeric
|
22
|
-
"+1234,03".numeric
|
8
|
+
expect("1234".numeric?).to be_truthy
|
9
|
+
expect("123.4".numeric?).to be_truthy
|
10
|
+
expect("123,4".numeric?).to be_truthy
|
11
|
+
expect("1234.03".numeric?).to be_truthy
|
12
|
+
expect("1234,03".numeric?).to be_truthy
|
13
|
+
expect("-1234".numeric?).to be_truthy
|
14
|
+
expect("-123.4".numeric?).to be_truthy
|
15
|
+
expect("-123,4".numeric?).to be_truthy
|
16
|
+
expect("-1234.03".numeric?).to be_truthy
|
17
|
+
expect("-1234,03".numeric?).to be_truthy
|
18
|
+
expect("+1234".numeric?).to be_truthy
|
19
|
+
expect("+123.4".numeric?).to be_truthy
|
20
|
+
expect("+123,4".numeric?).to be_truthy
|
21
|
+
expect("+1234.03".numeric?).to be_truthy
|
22
|
+
expect("+1234,03".numeric?).to be_truthy
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should return false if value seted is NOT a valid ruby number" do
|
26
|
-
"1234,".numeric
|
27
|
-
"1234.".numeric
|
28
|
-
"1,234.03".numeric
|
29
|
-
"1.234.03".numeric
|
30
|
-
"1,234,03".numeric
|
31
|
-
"12.340,03".numeric
|
32
|
-
"1234ab".numeric
|
33
|
-
"ab1213".numeric
|
34
|
-
"ffab".numeric
|
26
|
+
expect("1234,".numeric?).to be_falsey
|
27
|
+
expect("1234.".numeric?).to be_falsey
|
28
|
+
expect("1,234.03".numeric?).to be_falsey
|
29
|
+
expect("1.234.03".numeric?).to be_falsey
|
30
|
+
expect("1,234,03".numeric?).to be_falsey
|
31
|
+
expect("12.340,03".numeric?).to be_falsey
|
32
|
+
expect("1234ab".numeric?).to be_falsey
|
33
|
+
expect("ab1213".numeric?).to be_falsey
|
34
|
+
expect("ffab".numeric?).to be_falsey
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should convert value seted to valid ruby number" do
|
38
|
-
"1234".to_number.
|
39
|
-
"123.4".to_number.
|
40
|
-
"123,4".to_number.
|
41
|
-
"1234.03".to_number.
|
42
|
-
"1234,03".to_number.
|
38
|
+
expect("1234".to_number).to eql(1234.0)
|
39
|
+
expect("123.4".to_number).to eql(123.4)
|
40
|
+
expect("123,4".to_number).to eql(123.4)
|
41
|
+
expect("1234.03".to_number).to eql(1234.03)
|
42
|
+
expect("1234,03".to_number).to eql(1234.03)
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should return nil when is not possible convert value seted" do
|
46
|
-
"1234,".to_number.
|
47
|
-
"1234.".to_number.
|
48
|
-
"1,234.03".to_number.
|
49
|
-
"1.234.03".to_number.
|
50
|
-
"1,234,03".to_number.
|
51
|
-
"12.340,03".to_number.
|
52
|
-
"1234ab".to_number.
|
53
|
-
"ab1213".to_number.
|
54
|
-
"ffab".to_number.
|
46
|
+
expect("1234,".to_number).to be_nil
|
47
|
+
expect("1234.".to_number).to be_nil
|
48
|
+
expect("1,234.03".to_number).to be_nil
|
49
|
+
expect("1.234.03".to_number).to be_nil
|
50
|
+
expect("1,234,03".to_number).to be_nil
|
51
|
+
expect("12.340,03".to_number).to be_nil
|
52
|
+
expect("1234ab".to_number).to be_nil
|
53
|
+
expect("ab1213".to_number).to be_nil
|
54
|
+
expect("ffab".to_number).to be_nil
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
58
|
describe Number do
|
59
59
|
it "should convert value seted to currency value" do
|
60
|
-
1234.to_currency.
|
61
|
-
123.4.to_currency.
|
62
|
-
1234.03.to_currency.
|
63
|
-
1234.03.to_currency(options = {:unit => "R$ "}).
|
64
|
-
1234.03.to_currency(options = {:unit => "R$ ",:separator => "."}).
|
65
|
-
1234.03.to_currency(options = {:unit => "R$ ",:separator => ".",:delimiter => ','}).
|
66
|
-
1234.03.to_currency(options = {:unit => "R$ ", :precision => 3}).
|
60
|
+
expect(1234.to_currency).to eql("1.234,00")
|
61
|
+
expect(123.4.to_currency).to eql("123,40")
|
62
|
+
expect(1234.03.to_currency).to eql("1.234,03")
|
63
|
+
expect(1234.03.to_currency(options = {:unit => "R$ "})).to eql("R$ 1.234,03")
|
64
|
+
expect(1234.03.to_currency(options = {:unit => "R$ ",:separator => "."})).to eql("R$ 1.234.03")
|
65
|
+
expect(1234.03.to_currency(options = {:unit => "R$ ",:separator => ".",:delimiter => ','})).to eql("R$ 1,234.03")
|
66
|
+
expect(1234.03.to_currency(options = {:unit => "R$ ", :precision => 3})).to eql("R$ 1.234,030")
|
67
67
|
end
|
68
68
|
|
69
69
|
it "should convert value seted using delimiter and separator" do
|
70
|
-
1234.with_delimiter.
|
71
|
-
123.4.with_delimiter.
|
72
|
-
1234.03.with_delimiter.
|
70
|
+
expect(1234.with_delimiter).to eql("1,234")
|
71
|
+
expect(123.4.with_delimiter).to eql("123.4")
|
72
|
+
expect(1234.03.with_delimiter).to eql("1,234.03")
|
73
73
|
end
|
74
74
|
|
75
75
|
it "should convert value seted using precision " do
|
76
|
-
1234.with_precision.
|
77
|
-
123.4.with_precision.
|
78
|
-
1234.03.with_precision.
|
76
|
+
expect(1234.with_precision).to eql("1234.000")
|
77
|
+
expect(123.4.with_precision).to eql("123.400")
|
78
|
+
expect(1234.03.with_precision).to eql("1234.030")
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|