br_boleto 1.2.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +1 -1
- data/README.markdown +278 -98
- data/br_boleto.gemspec +5 -3
- data/lib/br_boleto/active_model_base.rb +1 -1
- data/lib/br_boleto/association/have_conta.rb +109 -0
- data/lib/br_boleto/association/have_pagador.rb +38 -0
- data/lib/br_boleto/association/have_pagamentos.rb +44 -0
- data/lib/br_boleto/boleto/base.rb +50 -379
- data/lib/br_boleto/boleto/caixa.rb +28 -143
- data/lib/br_boleto/boleto/sicoob.rb +24 -144
- data/lib/br_boleto/conta/base.rb +288 -0
- data/lib/br_boleto/conta/caixa.rb +109 -0
- data/lib/br_boleto/conta/sicoob.rb +64 -0
- data/lib/br_boleto/helper/default_codes.rb +33 -0
- data/lib/br_boleto/helper/format_value.rb +1 -0
- data/lib/br_boleto/helper/number.rb +30 -0
- data/lib/br_boleto/pagador.rb +82 -0
- data/lib/br_boleto/remessa/base.rb +28 -50
- data/lib/br_boleto/remessa/cnab240/base.rb +22 -131
- data/lib/br_boleto/remessa/cnab240/caixa.rb +16 -62
- data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +7 -7
- data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +6 -6
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +22 -22
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +16 -16
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +3 -3
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +36 -73
- data/lib/br_boleto/remessa/cnab400/base.rb +95 -0
- data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +136 -0
- data/lib/br_boleto/remessa/cnab400/helper/header.rb +114 -0
- data/lib/br_boleto/remessa/cnab400/helper/trailer.rb +50 -0
- data/lib/br_boleto/remessa/cnab400/sicoob.rb +249 -0
- data/lib/br_boleto/remessa/lote.rb +1 -23
- data/lib/br_boleto/remessa/pagamento.rb +188 -51
- data/lib/br_boleto/retorno/base.rb +9 -0
- data/lib/br_boleto/retorno/cnab240/base.rb +2 -10
- data/lib/br_boleto/retorno/cnab400/base.rb +48 -0
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +42 -0
- data/lib/br_boleto/retorno/pagamento.rb +12 -6
- data/lib/br_boleto/string_methods.rb +8 -2
- data/lib/br_boleto/validations.rb +19 -0
- data/lib/br_boleto/version.rb +3 -3
- data/lib/br_boleto.rb +38 -8
- data/lib/config/locales/br-boleto-en.yml +89 -0
- data/lib/config/locales/br-boleto-pt-BR.yml +89 -0
- data/test/br_boleto/association/have_conta_test.rb +319 -0
- data/test/br_boleto/association/have_pagador_test.rb +110 -0
- data/test/br_boleto/association/have_pagamentos_test.rb +113 -0
- data/test/br_boleto/boleto/base_test.rb +127 -201
- data/test/br_boleto/boleto/caixa_test.rb +58 -72
- data/test/br_boleto/boleto/sicoob_test.rb +88 -147
- data/test/br_boleto/conta/base_test.rb +490 -0
- data/test/br_boleto/conta/caixa_test.rb +154 -0
- data/test/br_boleto/conta/sicoob_test.rb +144 -0
- data/test/br_boleto/helper/number_test.rb +29 -0
- data/test/br_boleto/pagador_test.rb +158 -0
- data/test/br_boleto/remessa/base_test.rb +37 -62
- data/test/br_boleto/remessa/cnab240/base_test.rb +75 -95
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +61 -96
- data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +11 -11
- data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +8 -8
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +17 -15
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +13 -13
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +2 -2
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +3 -3
- data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +1 -1
- data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +1 -1
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +136 -131
- data/test/br_boleto/remessa/cnab400/base_test.rb +263 -0
- data/test/br_boleto/remessa/cnab400/sicoob_test.rb +179 -0
- data/test/br_boleto/remessa/lote_test.rb +2 -41
- data/test/br_boleto/remessa/pagamento_test.rb +186 -188
- data/test/br_boleto/retorno/base_test.rb +0 -1
- data/test/br_boleto/retorno/cnab240/base_test.rb +12 -11
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +11 -11
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +11 -11
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +227 -0
- data/test/br_boleto/retorno/pagamento_test.rb +6 -6
- data/test/factories/boleto/base.rb +9 -7
- data/test/factories/boleto/boleto_caixa.rb +2 -9
- data/test/factories/boleto/boleto_sicoob.rb +10 -8
- data/test/factories/conta/base.rb +10 -0
- data/test/factories/conta/caixa.rb +15 -0
- data/test/factories/conta/sicoob.rb +16 -0
- data/test/factories/pagador.rb +15 -0
- data/test/factories/remessa/base.rb +0 -6
- data/test/factories/remessa/cnab240/base.rb +0 -10
- data/test/factories/remessa/cnab240/caixa.rb +1 -6
- data/test/factories/remessa/cnab240/sicoob.rb +1 -10
- data/test/factories/remessa/cnab400/base.rb +8 -0
- data/test/factories/remessa/cnab400/sicoob.rb +8 -0
- data/test/factories/remessa/pagamento.rb +8 -7
- data/test/fixtures/remessa/cnab240/sicoob.rem +8 -0
- data/test/{files → fixtures}/retorno/cnab240/caixa.ret +0 -0
- data/test/{files → fixtures}/retorno/cnab240/padrao240.ret +0 -0
- data/test/fixtures/retorno/cnab400/sicoob.ret +7 -0
- data/test/inheritance/boleto_test.rb +4 -1
- data/test/inheritance/sicoob_test.rb +23 -7
- data/test/test_helper.rb +70 -0
- metadata +63 -6
@@ -10,108 +10,73 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
context "validations" do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
it { must validate_length_of(:versao_aplicativo).is_at_most(4).with_message("deve ter no máximo 4 dígitos.") }
|
20
|
-
it { must validate_length_of(:agencia ).is_at_most(5).with_message("deve ter no máximo 5 dígitos.") }
|
21
|
-
it { must validate_length_of(:modalidade_carteira).is_equal_to(2).with_message("deve ter 2 dígitos.") }
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "#default_values" do
|
25
|
-
it "for emissao_boleto" do
|
26
|
-
object = subject.class.new()
|
27
|
-
object.emissao_boleto.must_equal '2'
|
28
|
-
end
|
29
|
-
|
30
|
-
it "for distribuicao_boleto" do
|
31
|
-
object = subject.class.new()
|
32
|
-
object.distribuicao_boleto.must_equal '2'
|
33
|
-
end
|
34
|
-
|
35
|
-
it "for especie_titulo" do
|
36
|
-
object = subject.class.new()
|
37
|
-
object.especie_titulo.must_equal '02'
|
38
|
-
end
|
39
|
-
|
40
|
-
it "for modalidade_carteira" do
|
41
|
-
object = subject.class.new()
|
42
|
-
object.modalidade_carteira.must_equal '14'
|
43
|
-
end
|
44
|
-
|
45
|
-
it "for forma_cadastramento" do
|
46
|
-
object = subject.class.new()
|
47
|
-
object.forma_cadastramento.must_equal '0'
|
48
|
-
end
|
49
|
-
|
50
|
-
it "for versao_aplicativo" do
|
51
|
-
object = subject.class.new()
|
52
|
-
object.instance_variable_get(:@versao_aplicativo).must_equal '0'
|
53
|
-
end
|
54
|
-
|
55
|
-
it "for codigo_carteira" do
|
56
|
-
object = subject.class.new()
|
57
|
-
object.codigo_carteira.must_equal '1'
|
58
|
-
end
|
13
|
+
describe 'Validações personalizadas da conta' do
|
14
|
+
it 'valid_carteira_required' do
|
15
|
+
# subject.send(:valid_carteira_required).must_equal true
|
16
|
+
subject.conta.carteira = ''
|
17
|
+
conta_must_be_msg_error(:carteira, :blank)
|
18
|
+
end
|
59
19
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
20
|
+
it 'valid_carteira_length' do
|
21
|
+
# subject.send(:valid_carteira_length).must_equal 2
|
22
|
+
subject.conta.carteira = '1234567890123456'
|
23
|
+
conta_must_be_msg_error(:carteira, :custom_length_is, {count: 2})
|
64
24
|
end
|
65
|
-
end
|
66
|
-
end
|
67
25
|
|
68
|
-
|
69
|
-
|
70
|
-
|
26
|
+
it 'valid_convenio_required' do
|
27
|
+
# subject.send(:valid_convenio_required).must_equal true
|
28
|
+
subject.conta.convenio = ''
|
29
|
+
conta_must_be_msg_error(:convenio, :blank)
|
30
|
+
end
|
71
31
|
|
72
|
-
|
73
|
-
|
74
|
-
|
32
|
+
it 'valid_convenio_length' do
|
33
|
+
# subject.send(:valid_convenio_length).must_equal 2
|
34
|
+
subject.conta.convenio = '1234567890123456'
|
35
|
+
conta_must_be_msg_error(:convenio, :custom_length_maximum, {count: 6})
|
36
|
+
end
|
75
37
|
|
76
|
-
|
77
|
-
|
78
|
-
|
38
|
+
it 'agencia_required' do
|
39
|
+
# subject.send(:agencia_required).must_equal true
|
40
|
+
subject.conta.agencia = ''
|
41
|
+
conta_must_be_msg_error(:agencia, :blank)
|
42
|
+
end
|
79
43
|
|
80
|
-
|
81
|
-
|
82
|
-
|
44
|
+
it 'agencia_length' do
|
45
|
+
# subject.send(:agencia_length).must_equal 2
|
46
|
+
subject.conta.agencia = '1234567890123456'
|
47
|
+
conta_must_be_msg_error(:agencia, :custom_length_is, {count: 4})
|
48
|
+
end
|
83
49
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
50
|
+
it 'versao_aplicativo_required' do
|
51
|
+
# subject.send(:versao_aplicativo_required).must_equal true
|
52
|
+
subject.conta.versao_aplicativo = ''
|
53
|
+
conta_must_be_msg_error(:versao_aplicativo, :blank)
|
54
|
+
end
|
88
55
|
|
89
|
-
|
90
|
-
|
91
|
-
|
56
|
+
it 'versao_aplicativo_length' do
|
57
|
+
# subject.send(:versao_aplicativo_length).must_equal 2
|
58
|
+
subject.conta.versao_aplicativo = '1234567890123456'
|
59
|
+
conta_must_be_msg_error(:versao_aplicativo, :custom_length_maximum, {count: 4})
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
92
63
|
|
93
|
-
|
94
|
-
|
95
|
-
|
64
|
+
def conta_must_be_msg_error(attr_validation, msg_key, options_msg={})
|
65
|
+
must_be_message_error(:base, "#{BrBoleto::Conta::Caixa.human_attribute_name(attr_validation)} #{get_message(msg_key, options_msg)}")
|
66
|
+
end
|
96
67
|
end
|
97
68
|
end
|
98
69
|
|
99
|
-
it "o digito_agencia deve calcular o modulo11 de 2 a 9 com resto zero " do
|
100
|
-
subject.agencia = '33'
|
101
|
-
BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.expects(:new).with('33').returns(1)
|
102
|
-
subject.digito_agencia.must_equal '1'
|
103
|
-
end
|
104
|
-
|
105
70
|
it "o codigo_convenio deve ter 20 posições com Zeros" do
|
106
71
|
subject.codigo_convenio.must_equal '0' * 20
|
107
72
|
end
|
108
73
|
|
109
74
|
describe "#convenio_lote" do
|
110
75
|
it "as 6 primeiras posições deve ser o valor do convenio ajustado com zeros a esquerda" do
|
111
|
-
subject.convenio = '88'
|
76
|
+
subject.conta.convenio = '88'
|
112
77
|
subject.convenio_lote(lote)[0..5].must_equal '000088'
|
113
78
|
|
114
|
-
subject.convenio = '2878'
|
79
|
+
subject.conta.convenio = '2878'
|
115
80
|
subject.convenio_lote(lote)[0..5].must_equal '002878'
|
116
81
|
end
|
117
82
|
it "as 14 ultimas posições deve ser tudo Zeros" do
|
@@ -129,23 +94,23 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
|
|
129
94
|
end
|
130
95
|
|
131
96
|
it "1 - Primeira parte = agencia 5 posicoes - ajustados com zeros a esquerda" do
|
132
|
-
subject.agencia = '123'
|
97
|
+
subject.conta.agencia = '123'
|
133
98
|
subject.informacoes_da_conta[0..4].must_equal '00123'
|
134
99
|
|
135
|
-
subject.agencia = '1234'
|
100
|
+
subject.conta.agencia = '1234'
|
136
101
|
subject.informacoes_da_conta[0..4].must_equal '01234'
|
137
102
|
end
|
138
103
|
|
139
|
-
it "2 - Segunda parte =
|
140
|
-
subject.expects(:
|
141
|
-
subject.informacoes_da_conta[5].must_equal "&"
|
104
|
+
it "2 - Segunda parte = agencia_dv" do
|
105
|
+
subject.conta.expects(:agencia_dv).returns("&")
|
106
|
+
subject.informacoes_da_conta[5].must_equal "&"
|
142
107
|
end
|
143
108
|
|
144
109
|
it "3 - Terceira parte = convenio 6 posicoes - ajustados com zeros a esquerda" do
|
145
|
-
subject.convenio = '123'
|
110
|
+
subject.conta.convenio = '123'
|
146
111
|
subject.informacoes_da_conta[6..11].must_equal '000123'
|
147
112
|
|
148
|
-
subject.convenio = '1234'
|
113
|
+
subject.conta.convenio = '1234'
|
149
114
|
subject.informacoes_da_conta[6..11].must_equal '001234'
|
150
115
|
end
|
151
116
|
|
@@ -154,7 +119,7 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
|
|
154
119
|
end
|
155
120
|
|
156
121
|
it "5 - Quinta parte = Exclusivo caixa - Deve ter 1 zero" do
|
157
|
-
subject.informacoes_da_conta[19].must_equal('0')
|
122
|
+
subject.informacoes_da_conta[19].must_equal('0')
|
158
123
|
end
|
159
124
|
end
|
160
125
|
|
@@ -164,10 +129,10 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
|
|
164
129
|
end
|
165
130
|
|
166
131
|
it "1 - Primeira parte = versao_aplicativo 4 posicoes - ajustados com zeros a esquerda" do
|
167
|
-
subject.versao_aplicativo = '12'
|
132
|
+
subject.conta.versao_aplicativo = '12'
|
168
133
|
subject.complemento_header_arquivo[0..3].must_equal '0012'
|
169
134
|
|
170
|
-
subject.versao_aplicativo = '123'
|
135
|
+
subject.conta.versao_aplicativo = '123'
|
171
136
|
subject.complemento_header_arquivo[0..3].must_equal '0123'
|
172
137
|
end
|
173
138
|
|
@@ -183,10 +148,10 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
|
|
183
148
|
end
|
184
149
|
|
185
150
|
it "1 - Primeira parte = convenio com 6 posicoes - ajustados com zeros a esquerda" do
|
186
|
-
subject.convenio = '12'
|
151
|
+
subject.conta.convenio = '12'
|
187
152
|
subject.complemento_p(pagamento)[0..5].must_equal '000012'
|
188
153
|
|
189
|
-
subject.convenio = '123'
|
154
|
+
subject.conta.convenio = '123'
|
190
155
|
subject.complemento_p(pagamento)[0..5].must_equal '000123'
|
191
156
|
end
|
192
157
|
|
@@ -195,9 +160,9 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
|
|
195
160
|
end
|
196
161
|
|
197
162
|
it "3 - Terceira parte = Modalidade carteira com 2 posicoes" do
|
198
|
-
subject.
|
163
|
+
subject.conta.carteira = '14'
|
199
164
|
subject.complemento_p(pagamento)[17..18].must_equal '14'
|
200
|
-
subject.
|
165
|
+
subject.conta.carteira = 'XX'
|
201
166
|
subject.complemento_p(pagamento)[17..18].must_equal 'XX'
|
202
167
|
end
|
203
168
|
|
@@ -30,7 +30,7 @@ module Helper
|
|
30
30
|
# Por padrão deve retornar o "codigo_banco"
|
31
31
|
#
|
32
32
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_001_a_003
|
33
|
-
subject.expects(:codigo_banco).returns("669")
|
33
|
+
subject.conta.expects(:codigo_banco).returns("669")
|
34
34
|
subject.header_arquivo_posicao_001_a_003.must_equal("669")
|
35
35
|
end
|
36
36
|
|
@@ -63,7 +63,7 @@ module Helper
|
|
63
63
|
# retorna o valor do metodo "tipo_inscricao"
|
64
64
|
#
|
65
65
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_018_a_018
|
66
|
-
subject.expects(:
|
66
|
+
subject.conta.expects(:tipo_cpf_cnpj).with(1).returns("5")
|
67
67
|
subject.header_arquivo_posicao_018_a_018.must_equal("5")
|
68
68
|
end
|
69
69
|
|
@@ -72,7 +72,7 @@ module Helper
|
|
72
72
|
# Retorna o documento_cedente com 14 posições preenchendo com zeros
|
73
73
|
#
|
74
74
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_019_a_032
|
75
|
-
subject.expects(:
|
75
|
+
subject.conta.expects(:cpf_cnpj).returns("1234567890")
|
76
76
|
subject.header_arquivo_posicao_019_a_032.must_equal("00001234567890")
|
77
77
|
end
|
78
78
|
|
@@ -81,8 +81,8 @@ module Helper
|
|
81
81
|
# Deve retornar o valor do metodo "codigo_convenio"
|
82
82
|
#
|
83
83
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_033_a_052
|
84
|
-
subject.expects(:codigo_convenio).returns("
|
85
|
-
subject.header_arquivo_posicao_033_a_052.must_equal("
|
84
|
+
subject.expects(:codigo_convenio).returns("123456789012345")
|
85
|
+
subject.header_arquivo_posicao_033_a_052.must_equal("123456789012345 ")
|
86
86
|
end
|
87
87
|
|
88
88
|
# Informações da conta bancária
|
@@ -107,8 +107,8 @@ module Helper
|
|
107
107
|
# retorna o valor do metodo "nome_empresa_formatada"
|
108
108
|
#
|
109
109
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_073_a_102
|
110
|
-
subject.expects(:
|
111
|
-
subject.header_arquivo_posicao_073_a_102.must_equal("EMPRESA")
|
110
|
+
subject.conta.expects(:razao_social).returns("EMPRESA")
|
111
|
+
subject.header_arquivo_posicao_073_a_102.must_equal("EMPRESA".ljust(30, ' '))
|
112
112
|
end
|
113
113
|
|
114
114
|
# Nome do Banco
|
@@ -116,8 +116,8 @@ module Helper
|
|
116
116
|
# retorna o valor do metodo "nome_banco"
|
117
117
|
#
|
118
118
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_103_a_132
|
119
|
-
subject.expects(:nome_banco).returns("nome_banco")
|
120
|
-
subject.header_arquivo_posicao_103_a_132.must_equal('nome_banco')
|
119
|
+
subject.conta.expects(:nome_banco).returns("nome_banco")
|
120
|
+
subject.header_arquivo_posicao_103_a_132.must_equal('nome_banco'.ljust(30, ' '))
|
121
121
|
end
|
122
122
|
|
123
123
|
# Uso Exclusivo FEBRABAN / CNAB
|
@@ -168,8 +168,8 @@ module Helper
|
|
168
168
|
# Deve pegar o valor contido no metodo "versao_layout_arquivo"
|
169
169
|
#
|
170
170
|
def test_HeaderArquivoTest_metodo_header_arquivo_posicao_164_a_166
|
171
|
-
subject.expects(:
|
172
|
-
subject.header_arquivo_posicao_164_a_166.must_equal("
|
171
|
+
subject.conta.expects(:versao_layout_arquivo_cnab_240).returns("1")
|
172
|
+
subject.header_arquivo_posicao_164_a_166.must_equal("001")
|
173
173
|
end
|
174
174
|
|
175
175
|
# Densidade de Gravação do Arquivo
|
@@ -29,7 +29,7 @@ module Helper
|
|
29
29
|
# Por padrão deve retornar o "codigo_banco"
|
30
30
|
#
|
31
31
|
def test_HeaderLoteTest_metodo_header_lote_posicao_001_a_003
|
32
|
-
subject.expects(:codigo_banco).returns("669")
|
32
|
+
subject.conta.expects(:codigo_banco).returns("669")
|
33
33
|
subject.header_lote_posicao_001_a_003.must_equal("669")
|
34
34
|
end
|
35
35
|
|
@@ -78,8 +78,8 @@ module Helper
|
|
78
78
|
# Deve pegar o valor do metodo "versao_layout_lote"
|
79
79
|
#
|
80
80
|
def test_HeaderLoteTest_metodo_header_lote_posicao_014_a_016
|
81
|
-
subject.expects(:
|
82
|
-
subject.header_lote_posicao_014_a_016.must_equal "
|
81
|
+
subject.conta.expects(:versao_layout_lote_cnab_240).returns('56')
|
82
|
+
subject.header_lote_posicao_014_a_016.must_equal "056"
|
83
83
|
end
|
84
84
|
|
85
85
|
# Uso Exclusivo da FEBRABAN/CNAB
|
@@ -95,8 +95,8 @@ module Helper
|
|
95
95
|
# Deve pegar o valor do metodo "tipo_inscricao"
|
96
96
|
#
|
97
97
|
def test_HeaderLoteTest_metodo_header_lote_posicao_018_a_018
|
98
|
-
subject.expects(:
|
99
|
-
subject.header_lote_posicao_018_a_018.must_equal '
|
98
|
+
subject.conta.expects(:tipo_cpf_cnpj).with(1).returns('3')
|
99
|
+
subject.header_lote_posicao_018_a_018.must_equal '3'
|
100
100
|
end
|
101
101
|
|
102
102
|
# Número de Inscrição da Empresa
|
@@ -104,7 +104,7 @@ module Helper
|
|
104
104
|
# Deve pegar o valor do 'documento_cedente' e ajustar com 0 o espaço em branco
|
105
105
|
#
|
106
106
|
def test_HeaderLoteTest_metodo_header_lote_posicao_019_a_033
|
107
|
-
subject.expects(:
|
107
|
+
subject.conta.expects(:cpf_cnpj).returns('1234567890')
|
108
108
|
subject.header_lote_posicao_019_a_033.must_equal '000001234567890'
|
109
109
|
end
|
110
110
|
|
@@ -139,8 +139,8 @@ module Helper
|
|
139
139
|
# deve retornar o valor do metodo 'nome_empresa_formatada'
|
140
140
|
#
|
141
141
|
def test_HeaderLoteTest_metodo_header_lote_posicao_074_a_103
|
142
|
-
subject.expects(:
|
143
|
-
subject.header_lote_posicao_074_a_103.must_equal 'nome_empresa_formatada'
|
142
|
+
subject.conta.expects(:razao_social).returns('nome_empresa_formatada')
|
143
|
+
subject.header_lote_posicao_074_a_103.must_equal 'nome_empresa_formatada'.ljust(30, ' ')
|
144
144
|
end
|
145
145
|
|
146
146
|
# Mensagem 1
|
@@ -49,7 +49,7 @@ module Helper
|
|
49
49
|
# Por padrão deve retornar o "codigo_banco"
|
50
50
|
#
|
51
51
|
def test_SegmentoPTest_metodo_segmento_p_posicao_001_a_003
|
52
|
-
subject.expects(:codigo_banco).returns("669")
|
52
|
+
subject.conta.expects(:codigo_banco).returns("669")
|
53
53
|
subject.segmento_p_posicao_001_a_003.must_equal("669")
|
54
54
|
end
|
55
55
|
|
@@ -112,7 +112,7 @@ module Helper
|
|
112
112
|
# Deve pegar a "agencia" e ajustar para 5 caracteres incluindo 0 na frente
|
113
113
|
#
|
114
114
|
def test_SegmentoPTest_metodo_segmento_p_posicao_018_a_022
|
115
|
-
subject.expects(:agencia).returns(89)
|
115
|
+
subject.conta.expects(:agencia).returns(89)
|
116
116
|
subject.segmento_p_posicao_018_a_022.must_equal '00089'
|
117
117
|
end
|
118
118
|
|
@@ -121,7 +121,7 @@ module Helper
|
|
121
121
|
# Deve pegar o "digito_agencia"
|
122
122
|
#
|
123
123
|
def test_SegmentoPTest_metodo_segmento_p_posicao_023_a_023
|
124
|
-
subject.expects(:
|
124
|
+
subject.conta.expects(:agencia_dv).returns(1)
|
125
125
|
subject.segmento_p_posicao_023_a_023.must_equal '1'
|
126
126
|
end
|
127
127
|
|
@@ -144,7 +144,7 @@ module Helper
|
|
144
144
|
# Deve pegar o valor do metodo "codigo_carteira"
|
145
145
|
#
|
146
146
|
def test_SegmentoPTest_metodo_segmento_p_posicao_058_a_058
|
147
|
-
subject.expects(:
|
147
|
+
subject.conta.expects(:carteira).returns('3')
|
148
148
|
subject.segmento_p_posicao_058_a_058.must_equal '3'
|
149
149
|
end
|
150
150
|
|
@@ -153,8 +153,8 @@ module Helper
|
|
153
153
|
# Deve pegar o valor da "forma_cadastramento"
|
154
154
|
#
|
155
155
|
def test_SegmentoPTest_metodo_segmento_p_posicao_059_a_059
|
156
|
-
|
157
|
-
subject.segmento_p_posicao_059_a_059.must_equal '
|
156
|
+
pagamento.expects(:forma_cadastramento).returns('56')
|
157
|
+
subject.segmento_p_posicao_059_a_059(pagamento).must_equal '5'
|
158
158
|
end
|
159
159
|
|
160
160
|
# Tipo de Documento
|
@@ -170,8 +170,8 @@ module Helper
|
|
170
170
|
# Deve pegar o valor do metodo "emissao_boleto"
|
171
171
|
#
|
172
172
|
def test_SegmentoPTest_metodo_segmento_p_posicao_061_a_061
|
173
|
-
|
174
|
-
subject.segmento_p_posicao_061_a_061.must_equal '123'
|
173
|
+
pagamento.expects(:emissao_boleto).returns('123')
|
174
|
+
subject.segmento_p_posicao_061_a_061(pagamento).must_equal '123'
|
175
175
|
end
|
176
176
|
|
177
177
|
# Identificação da Distribuição
|
@@ -179,8 +179,8 @@ module Helper
|
|
179
179
|
# Deve pegar o valor do metodo "distribuicao_boleto"
|
180
180
|
#
|
181
181
|
def test_SegmentoPTest_metodo_segmento_p_posicao_062_a_062
|
182
|
-
|
183
|
-
subject.segmento_p_posicao_062_a_062.must_equal 'distribuicao_boleto'
|
182
|
+
pagamento.expects(:distribuicao_boleto).returns('distribuicao_boleto')
|
183
|
+
subject.segmento_p_posicao_062_a_062(pagamento).must_equal 'distribuicao_boleto'
|
184
184
|
end
|
185
185
|
|
186
186
|
# Número do Documento de Cobrança
|
@@ -232,8 +232,8 @@ module Helper
|
|
232
232
|
# Deve retornar o valro do metodo "especie_titulo"
|
233
233
|
#
|
234
234
|
def test_SegmentoPTest_metodo_segmento_p_posicao_107_a_108
|
235
|
-
|
236
|
-
subject.segmento_p_posicao_107_a_108
|
235
|
+
pagamento.expects(:especie_titulo).returns('123')
|
236
|
+
subject.segmento_p_posicao_107_a_108(pagamento).must_equal '12'
|
237
237
|
end
|
238
238
|
|
239
239
|
# Identific. de Título Aceito/Não Aceito (A ou N)
|
@@ -241,8 +241,10 @@ module Helper
|
|
241
241
|
# Deve retornar o valor do "aceite"
|
242
242
|
#
|
243
243
|
def test_SegmentoPTest_metodo_segmento_p_posicao_109_a_109
|
244
|
-
|
245
|
-
subject.segmento_p_posicao_109_a_109.must_equal '
|
244
|
+
pagamento.aceite = true
|
245
|
+
subject.segmento_p_posicao_109_a_109(pagamento).must_equal 'A'
|
246
|
+
pagamento.aceite = false
|
247
|
+
subject.segmento_p_posicao_109_a_109(pagamento).must_equal 'N'
|
246
248
|
end
|
247
249
|
|
248
250
|
# Data da Emissão do Título
|
@@ -302,7 +304,7 @@ module Helper
|
|
302
304
|
#
|
303
305
|
def test_SegmentoPTest_metodo_segmento_p_posicao_142_a_142#(pagamento)
|
304
306
|
pagamento.expects(:cod_desconto).returns('123')
|
305
|
-
subject.segmento_p_posicao_142_a_142(pagamento).must_equal '
|
307
|
+
subject.segmento_p_posicao_142_a_142(pagamento).must_equal '1'
|
306
308
|
end
|
307
309
|
|
308
310
|
# Data do Desconto 1
|
@@ -32,7 +32,7 @@ module Helper
|
|
32
32
|
# Por padrão deve retornar o "codigo_banco"
|
33
33
|
#
|
34
34
|
def test_SegmentoQTest_metodo_segmento_q_posicao_001_a_003
|
35
|
-
subject.expects(:codigo_banco).returns("669")
|
35
|
+
subject.conta.expects(:codigo_banco).returns("669")
|
36
36
|
subject.segmento_q_posicao_001_a_003.must_equal("669")
|
37
37
|
end
|
38
38
|
|
@@ -92,7 +92,7 @@ module Helper
|
|
92
92
|
# Deve pegar o 'tipo_documento_sacado' com 1 posição
|
93
93
|
#
|
94
94
|
def test_SegmentoQTest_metodo_segmento_q_posicao_018_a_018#(pagamento)
|
95
|
-
pagamento.expects(:
|
95
|
+
pagamento.pagador.expects(:tipo_cpf_cnpj).with(1).returns('1')
|
96
96
|
subject.segmento_q_posicao_018_a_018(pagamento).must_equal '1'
|
97
97
|
end
|
98
98
|
|
@@ -101,7 +101,7 @@ module Helper
|
|
101
101
|
# Deve retornar o "documento_sacado" com 15 posições
|
102
102
|
#
|
103
103
|
def test_SegmentoQTest_metodo_segmento_q_posicao_019_a_033#(pagamento)
|
104
|
-
pagamento.
|
104
|
+
pagamento.pagador.cpf_cnpj = 1234567890
|
105
105
|
subject.segmento_q_posicao_019_a_033(pagamento).must_equal '000001234567890'
|
106
106
|
end
|
107
107
|
|
@@ -110,7 +110,7 @@ module Helper
|
|
110
110
|
# Deve retornar o nome do sacado ajustando para 40 posições
|
111
111
|
#
|
112
112
|
def test_SegmentoQTest_metodo_segmento_q_posicao_034_a_073#(pagamento)
|
113
|
-
pagamento.
|
113
|
+
pagamento.pagador.nome = '556698'
|
114
114
|
subject.segmento_q_posicao_034_a_073(pagamento).must_equal '556698'.adjust_size_to(40)
|
115
115
|
end
|
116
116
|
|
@@ -119,7 +119,7 @@ module Helper
|
|
119
119
|
# Deve pegar o "endereco_sacado" ajsutando para 40 posições
|
120
120
|
#
|
121
121
|
def test_SegmentoQTest_metodo_segmento_q_posicao_074_a_113#(pagamento)
|
122
|
-
pagamento.
|
122
|
+
pagamento.pagador.endereco = '111'.rjust(43, '2')
|
123
123
|
subject.segmento_q_posicao_074_a_113(pagamento).must_equal ''.rjust(40, '2')
|
124
124
|
end
|
125
125
|
|
@@ -128,7 +128,7 @@ module Helper
|
|
128
128
|
# Deve retornar o 'bairro_sacado' com 15 posições
|
129
129
|
#
|
130
130
|
def test_SegmentoQTest_metodo_segmento_q_posicao_114_a_128#(pagamento)
|
131
|
-
pagamento.
|
131
|
+
pagamento.pagador.bairro = '50'
|
132
132
|
subject.segmento_q_posicao_114_a_128(pagamento).must_equal '50'.adjust_size_to(15)
|
133
133
|
end
|
134
134
|
|
@@ -137,7 +137,7 @@ module Helper
|
|
137
137
|
# Deve retornar o CEP com 5 posições
|
138
138
|
#
|
139
139
|
def test_SegmentoQTest_metodo_segmento_q_posicao_129_a_133#(pagamento)
|
140
|
-
pagamento.
|
140
|
+
pagamento.pagador.cep = '12345678'
|
141
141
|
subject.segmento_q_posicao_129_a_133(pagamento).must_equal '12345'
|
142
142
|
end
|
143
143
|
|
@@ -146,7 +146,7 @@ module Helper
|
|
146
146
|
# Deve pegar as ultimas 3 posições do cep
|
147
147
|
#
|
148
148
|
def test_SegmentoQTest_metodo_segmento_q_posicao_134_a_136#(pagamento)
|
149
|
-
pagamento.
|
149
|
+
pagamento.pagador.cep = '12345678'
|
150
150
|
subject.segmento_q_posicao_134_a_136(pagamento).must_equal '678'
|
151
151
|
end
|
152
152
|
|
@@ -155,7 +155,7 @@ module Helper
|
|
155
155
|
# Deve retornar a "cidade_sacado" ajustando para 15 posições
|
156
156
|
#
|
157
157
|
def test_SegmentoQTest_metodo_segmento_q_posicao_137_a_151#(pagamento)
|
158
|
-
pagamento.
|
158
|
+
pagamento.pagador.cidade = '5555'
|
159
159
|
subject.segmento_q_posicao_137_a_151(pagamento).must_equal '5555'.adjust_size_to(15)
|
160
160
|
end
|
161
161
|
|
@@ -164,7 +164,7 @@ module Helper
|
|
164
164
|
# Retorna o UF do sacado
|
165
165
|
#
|
166
166
|
def test_SegmentoQTest_metodo_segmento_q_posicao_152_a_153#(pagamento)
|
167
|
-
pagamento.
|
167
|
+
pagamento.pagador.uf = "XX"
|
168
168
|
subject.segmento_q_posicao_152_a_153(pagamento).must_equal 'XX'
|
169
169
|
end
|
170
170
|
|
@@ -173,7 +173,7 @@ module Helper
|
|
173
173
|
# Deve retornar o "tipo_documento_avalista" com 1 posição do pagamento
|
174
174
|
#
|
175
175
|
def test_SegmentoQTest_metodo_segmento_q_posicao_154_a_154#(pagamento)
|
176
|
-
pagamento.expects(:tipo_documento_avalista).with(1).returns("6")
|
176
|
+
pagamento.pagador.expects(:tipo_documento_avalista).with(1).returns("6")
|
177
177
|
subject.segmento_q_posicao_154_a_154(pagamento).must_equal '6'
|
178
178
|
end
|
179
179
|
|
@@ -182,7 +182,7 @@ module Helper
|
|
182
182
|
# Deve pegar o "documento_avalista" com 15 posições
|
183
183
|
#
|
184
184
|
def test_SegmentoQTest_metodo_segmento_q_posicao_155_a_169#(pagamento)
|
185
|
-
pagamento.expects(:documento_avalista).returns(123)
|
185
|
+
pagamento.pagador.expects(:documento_avalista).returns(123)
|
186
186
|
subject.segmento_q_posicao_155_a_169(pagamento).must_equal '123'.rjust(15, '0')
|
187
187
|
end
|
188
188
|
|
@@ -191,7 +191,7 @@ module Helper
|
|
191
191
|
# Deve retornar o "nome_avalista" ajustando para 40 posições
|
192
192
|
#
|
193
193
|
def test_SegmentoQTest_metodo_segmento_q_posicao_170_a_209#(pagamento)
|
194
|
-
pagamento.expects(:nome_avalista).returns('avalista')
|
194
|
+
pagamento.pagador.expects(:nome_avalista).returns('avalista')
|
195
195
|
subject.segmento_q_posicao_170_a_209(pagamento).must_equal 'avalista'.adjust_size_to(40)
|
196
196
|
end
|
197
197
|
|
@@ -35,7 +35,7 @@ module Helper
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def test_SegmentoRHelper_deve_ter_240_posicoes
|
38
|
-
subject.stubs(:codigo_banco).returns("123")
|
38
|
+
subject.conta.stubs(:codigo_banco).returns("123")
|
39
39
|
subject.monta_segmento_r(pagamento, 1, 2).size.must_equal 240
|
40
40
|
|
41
41
|
end
|
@@ -44,7 +44,7 @@ module Helper
|
|
44
44
|
# 3 posições
|
45
45
|
#
|
46
46
|
def test_SegmentoRHelper_metodo_segmento_r_posicao_001_a_003
|
47
|
-
subject.expects(:codigo_banco).returns("123")
|
47
|
+
subject.conta.expects(:codigo_banco).returns("123")
|
48
48
|
subject.segmento_r_posicao_001_a_003 .must_equal '123'
|
49
49
|
end
|
50
50
|
|
@@ -50,13 +50,13 @@ module Helper
|
|
50
50
|
|
51
51
|
def test_SegmentoSHelper_deve_ter_240_posicoes_com_tipo_impressao_1_ou_2
|
52
52
|
pagamento.tipo_impressao = '1'
|
53
|
-
subject.stubs(:codigo_banco).returns("123")
|
53
|
+
subject.conta.stubs(:codigo_banco).returns("123")
|
54
54
|
subject.monta_segmento_s(pagamento, 1, 2).size.must_equal 240
|
55
55
|
end
|
56
56
|
|
57
57
|
def test_SegmentoSHelper_deve_ter_240_posicoes_com_tipo_impressao_3
|
58
58
|
pagamento.tipo_impressao = '3'
|
59
|
-
subject.stubs(:codigo_banco).returns("123")
|
59
|
+
subject.conta.stubs(:codigo_banco).returns("123")
|
60
60
|
subject.monta_segmento_s(pagamento, 1, 2).size.must_equal 240
|
61
61
|
end
|
62
62
|
|
@@ -64,7 +64,7 @@ module Helper
|
|
64
64
|
# 3 posições
|
65
65
|
#
|
66
66
|
def test_SegmentoSHelper_metodo_segmento_s_posicao_001_a_003
|
67
|
-
subject.expects(:codigo_banco).returns("123")
|
67
|
+
subject.conta.expects(:codigo_banco).returns("123")
|
68
68
|
subject.segmento_s_posicao_001_a_003 .must_equal '123'
|
69
69
|
end
|
70
70
|
|
@@ -18,7 +18,7 @@ module Helper
|
|
18
18
|
# Por padrão deve retornar o "codigo_banco"
|
19
19
|
#
|
20
20
|
def test_TrailerArquivo_metodo_trailer_arquivo_posicao_001_a_003
|
21
|
-
subject.expects(:codigo_banco).returns("669")
|
21
|
+
subject.conta.expects(:codigo_banco).returns("669")
|
22
22
|
subject.trailer_arquivo_posicao_001_a_003.must_equal("669")
|
23
23
|
end
|
24
24
|
|
@@ -16,7 +16,7 @@ module Helper
|
|
16
16
|
# Por padrão deve retornar o "codigo_banco"
|
17
17
|
#
|
18
18
|
def test_TrailerLote_metodo_trailer_lote_posicao_001_a_003
|
19
|
-
subject.expects(:codigo_banco).returns("669")
|
19
|
+
subject.conta.expects(:codigo_banco).returns("669")
|
20
20
|
subject.trailer_lote_posicao_001_a_003.must_equal("669")
|
21
21
|
end
|
22
22
|
|