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.
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