br_boleto 1.2.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.markdown +278 -98
  5. data/br_boleto.gemspec +5 -3
  6. data/lib/br_boleto/active_model_base.rb +1 -1
  7. data/lib/br_boleto/association/have_conta.rb +109 -0
  8. data/lib/br_boleto/association/have_pagador.rb +38 -0
  9. data/lib/br_boleto/association/have_pagamentos.rb +44 -0
  10. data/lib/br_boleto/boleto/base.rb +50 -379
  11. data/lib/br_boleto/boleto/caixa.rb +28 -143
  12. data/lib/br_boleto/boleto/sicoob.rb +24 -144
  13. data/lib/br_boleto/conta/base.rb +288 -0
  14. data/lib/br_boleto/conta/caixa.rb +109 -0
  15. data/lib/br_boleto/conta/sicoob.rb +64 -0
  16. data/lib/br_boleto/helper/default_codes.rb +33 -0
  17. data/lib/br_boleto/helper/format_value.rb +1 -0
  18. data/lib/br_boleto/helper/number.rb +30 -0
  19. data/lib/br_boleto/pagador.rb +82 -0
  20. data/lib/br_boleto/remessa/base.rb +28 -50
  21. data/lib/br_boleto/remessa/cnab240/base.rb +22 -131
  22. data/lib/br_boleto/remessa/cnab240/caixa.rb +16 -62
  23. data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +7 -7
  24. data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +6 -6
  25. data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +22 -22
  26. data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +16 -16
  27. data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +3 -3
  28. data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +3 -3
  29. data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +3 -3
  30. data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +3 -3
  31. data/lib/br_boleto/remessa/cnab240/sicoob.rb +36 -73
  32. data/lib/br_boleto/remessa/cnab400/base.rb +95 -0
  33. data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +136 -0
  34. data/lib/br_boleto/remessa/cnab400/helper/header.rb +114 -0
  35. data/lib/br_boleto/remessa/cnab400/helper/trailer.rb +50 -0
  36. data/lib/br_boleto/remessa/cnab400/sicoob.rb +249 -0
  37. data/lib/br_boleto/remessa/lote.rb +1 -23
  38. data/lib/br_boleto/remessa/pagamento.rb +188 -51
  39. data/lib/br_boleto/retorno/base.rb +9 -0
  40. data/lib/br_boleto/retorno/cnab240/base.rb +2 -10
  41. data/lib/br_boleto/retorno/cnab400/base.rb +48 -0
  42. data/lib/br_boleto/retorno/cnab400/sicoob.rb +42 -0
  43. data/lib/br_boleto/retorno/pagamento.rb +12 -6
  44. data/lib/br_boleto/string_methods.rb +8 -2
  45. data/lib/br_boleto/validations.rb +19 -0
  46. data/lib/br_boleto/version.rb +3 -3
  47. data/lib/br_boleto.rb +38 -8
  48. data/lib/config/locales/br-boleto-en.yml +89 -0
  49. data/lib/config/locales/br-boleto-pt-BR.yml +89 -0
  50. data/test/br_boleto/association/have_conta_test.rb +319 -0
  51. data/test/br_boleto/association/have_pagador_test.rb +110 -0
  52. data/test/br_boleto/association/have_pagamentos_test.rb +113 -0
  53. data/test/br_boleto/boleto/base_test.rb +127 -201
  54. data/test/br_boleto/boleto/caixa_test.rb +58 -72
  55. data/test/br_boleto/boleto/sicoob_test.rb +88 -147
  56. data/test/br_boleto/conta/base_test.rb +490 -0
  57. data/test/br_boleto/conta/caixa_test.rb +154 -0
  58. data/test/br_boleto/conta/sicoob_test.rb +144 -0
  59. data/test/br_boleto/helper/number_test.rb +29 -0
  60. data/test/br_boleto/pagador_test.rb +158 -0
  61. data/test/br_boleto/remessa/base_test.rb +37 -62
  62. data/test/br_boleto/remessa/cnab240/base_test.rb +75 -95
  63. data/test/br_boleto/remessa/cnab240/caixa_test.rb +61 -96
  64. data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +11 -11
  65. data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +8 -8
  66. data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +17 -15
  67. data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +13 -13
  68. data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +2 -2
  69. data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +3 -3
  70. data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +1 -1
  71. data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +1 -1
  72. data/test/br_boleto/remessa/cnab240/sicoob_test.rb +136 -131
  73. data/test/br_boleto/remessa/cnab400/base_test.rb +263 -0
  74. data/test/br_boleto/remessa/cnab400/sicoob_test.rb +179 -0
  75. data/test/br_boleto/remessa/lote_test.rb +2 -41
  76. data/test/br_boleto/remessa/pagamento_test.rb +186 -188
  77. data/test/br_boleto/retorno/base_test.rb +0 -1
  78. data/test/br_boleto/retorno/cnab240/base_test.rb +12 -11
  79. data/test/br_boleto/retorno/cnab240/caixa_test.rb +11 -11
  80. data/test/br_boleto/retorno/cnab240/sicoob_test.rb +11 -11
  81. data/test/br_boleto/retorno/cnab400/sicoob_test.rb +227 -0
  82. data/test/br_boleto/retorno/pagamento_test.rb +6 -6
  83. data/test/factories/boleto/base.rb +9 -7
  84. data/test/factories/boleto/boleto_caixa.rb +2 -9
  85. data/test/factories/boleto/boleto_sicoob.rb +10 -8
  86. data/test/factories/conta/base.rb +10 -0
  87. data/test/factories/conta/caixa.rb +15 -0
  88. data/test/factories/conta/sicoob.rb +16 -0
  89. data/test/factories/pagador.rb +15 -0
  90. data/test/factories/remessa/base.rb +0 -6
  91. data/test/factories/remessa/cnab240/base.rb +0 -10
  92. data/test/factories/remessa/cnab240/caixa.rb +1 -6
  93. data/test/factories/remessa/cnab240/sicoob.rb +1 -10
  94. data/test/factories/remessa/cnab400/base.rb +8 -0
  95. data/test/factories/remessa/cnab400/sicoob.rb +8 -0
  96. data/test/factories/remessa/pagamento.rb +8 -7
  97. data/test/fixtures/remessa/cnab240/sicoob.rem +8 -0
  98. data/test/{files → fixtures}/retorno/cnab240/caixa.ret +0 -0
  99. data/test/{files → fixtures}/retorno/cnab240/padrao240.ret +0 -0
  100. data/test/fixtures/retorno/cnab400/sicoob.ret +7 -0
  101. data/test/inheritance/boleto_test.rb +4 -1
  102. data/test/inheritance/sicoob_test.rb +23 -7
  103. data/test/test_helper.rb +70 -0
  104. metadata +63 -6
@@ -10,108 +10,73 @@ describe BrBoleto::Remessa::Cnab240::Caixa do
10
10
  end
11
11
 
12
12
  context "validations" do
13
- it { must validate_presence_of(:modalidade_carteira) }
14
- it { must validate_presence_of(:agencia) }
15
- it { must validate_presence_of(:versao_aplicativo) }
16
- it { must validate_presence_of(:convenio) }
17
-
18
- it { must validate_length_of(:convenio ).is_at_most(6).with_message("deve ter no máximo 6 dígitos.") }
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
- context "deve manter os defaults da classe Base" do
61
- it "deve continuar com o default da superclass" do
62
- object = subject.class.new()
63
- object.aceite.must_equal 'N'
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
- it "codigo_banco deve ser 104" do
69
- subject.codigo_banco.must_equal '104'
70
- end
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
- it "metodo nome_banco deve retornar CAIXA ECONOMICA FEDERAL com 30 posições" do
73
- subject.nome_banco.must_equal 'CAIXA ECONOMICA FEDERAL'.ljust(30, ' ')
74
- end
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
- it "metodo versao_layout_arquivo deve retornar 050" do
77
- subject.versao_layout_arquivo.must_equal '050'
78
- end
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
- it "metodo versao_layout_lote deve retornar 030" do
81
- subject.versao_layout_lote.must_equal '030'
82
- end
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
- describe "#versao_aplicativo" do
85
- it "se contém algum valor na variavel @versao_aplicativo deve ajustála para 4 posições adicionado zeros a esquerda" do
86
- subject.instance_variable_set(:@versao_aplicativo, '88')
87
- subject.versao_aplicativo.must_equal '0088'
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
- subject.versao_aplicativo = '777'
90
- subject.versao_aplicativo.must_equal '0777'
91
- end
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
- it "se não contém valor na variavel @versao_aplicativo deve retornar nil" do
94
- subject.instance_variable_set(:@versao_aplicativo, '')
95
- subject.versao_aplicativo.must_be_nil
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 = digito_agencia" do
140
- subject.expects(:digito_agencia).returns("&")
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.modalidade_carteira = '14'
163
+ subject.conta.carteira = '14'
199
164
  subject.complemento_p(pagamento)[17..18].must_equal '14'
200
- subject.modalidade_carteira = 'XX'
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(:tipo_inscricao).returns("5")
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(:documento_cedente).returns("1234567890")
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("1345646432132")
85
- subject.header_arquivo_posicao_033_a_052.must_equal("1345646432132")
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(:nome_empresa_formatada).returns("EMPRESA")
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(:versao_layout_arquivo).returns("123")
172
- subject.header_arquivo_posicao_164_a_166.must_equal("123")
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(:versao_layout_lote).returns('versao_layout_lote')
82
- subject.header_lote_posicao_014_a_016.must_equal "versao_layout_lote"
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(:tipo_inscricao).returns('tipo_inscricao')
99
- subject.header_lote_posicao_018_a_018.must_equal 'tipo_inscricao'
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(:documento_cedente).returns('1234567890')
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(:nome_empresa_formatada).returns('nome_empresa_formatada')
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(:digito_agencia).returns(1)
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(:codigo_carteira).returns('3')
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
- subject.expects(:forma_cadastramento).returns('123')
157
- subject.segmento_p_posicao_059_a_059.must_equal '123'
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
- subject.expects(:emissao_boleto).returns('123')
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
- subject.expects(:distribuicao_boleto).returns('distribuicao_boleto')
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
- subject.expects(:especie_titulo).returns('123')
236
- subject.segmento_p_posicao_107_a_108 .must_equal '123'
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
- subject.expects(:aceite).returns('1')
245
- subject.segmento_p_posicao_109_a_109.must_equal '1'
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 '123'
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(:tipo_documento_sacado).with(1).returns('1')
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.documento_sacado = 1234567890
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.nome_sacado = '556698'
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.endereco_sacado = '111'.rjust(43, '2')
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.bairro_sacado = '50'
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.expects(:cep_sacado).returns('12345678')
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.expects(:cep_sacado).returns('12345678')
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.expects(:cidade_sacado).returns('5555')
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.expects(:uf_sacado).returns("XX")
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