br_boleto 2.0.1 → 2.1.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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.travis.yml +1 -1
  4. data/Gemfile.lock +2 -2
  5. data/br_boleto.gemspec +2 -3
  6. data/lib/br_boleto/association/have_conta.rb +27 -25
  7. data/lib/br_boleto/association/have_pagador.rb +2 -0
  8. data/lib/br_boleto/boleto/base.rb +0 -4
  9. data/lib/br_boleto/boleto/bradesco.rb +80 -0
  10. data/lib/br_boleto/boleto/caixa.rb +10 -12
  11. data/lib/br_boleto/boleto/cecred.rb +76 -0
  12. data/lib/br_boleto/boleto/itau.rb +114 -0
  13. data/lib/br_boleto/boleto/sicredi.rb +101 -0
  14. data/lib/br_boleto/boleto/unicred.rb +21 -0
  15. data/lib/br_boleto/conta/base.rb +28 -3
  16. data/lib/br_boleto/conta/bradesco.rb +120 -0
  17. data/lib/br_boleto/conta/caixa.rb +22 -12
  18. data/lib/br_boleto/conta/cecred.rb +67 -0
  19. data/lib/br_boleto/conta/itau.rb +199 -0
  20. data/lib/br_boleto/conta/sicoob.rb +40 -11
  21. data/lib/br_boleto/conta/sicredi.rb +171 -0
  22. data/lib/br_boleto/conta/unicred.rb +38 -0
  23. data/lib/br_boleto/helper/default_codes.rb +535 -26
  24. data/lib/br_boleto/pagador.rb +4 -0
  25. data/lib/br_boleto/remessa/base.rb +2 -0
  26. data/lib/br_boleto/remessa/cnab240/base.rb +21 -6
  27. data/lib/br_boleto/remessa/cnab240/bradesco.rb +141 -0
  28. data/lib/br_boleto/remessa/cnab240/caixa.rb +8 -1
  29. data/lib/br_boleto/remessa/cnab240/cecred.rb +169 -0
  30. data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +29 -21
  31. data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +4 -3
  32. data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +5 -5
  33. data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +4 -3
  34. data/lib/br_boleto/remessa/cnab240/itau.rb +186 -0
  35. data/lib/br_boleto/remessa/cnab240/sicoob.rb +4 -16
  36. data/lib/br_boleto/remessa/cnab240/sicredi.rb +205 -0
  37. data/lib/br_boleto/remessa/cnab240/unicred.rb +40 -0
  38. data/lib/br_boleto/remessa/cnab400/bradesco.rb +235 -0
  39. data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +6 -5
  40. data/lib/br_boleto/remessa/cnab400/itau.rb +190 -0
  41. data/lib/br_boleto/remessa/cnab400/sicoob.rb +3 -3
  42. data/lib/br_boleto/remessa/cnab400/sicredi.rb +276 -0
  43. data/lib/br_boleto/remessa/cnab400/unicred.rb +62 -0
  44. data/lib/br_boleto/remessa/pagamento.rb +93 -43
  45. data/lib/br_boleto/retorno/cnab240/base.rb +13 -12
  46. data/lib/br_boleto/retorno/cnab240/bradesco.rb +10 -0
  47. data/lib/br_boleto/retorno/cnab240/caixa.rb +2 -3
  48. data/lib/br_boleto/retorno/cnab240/cecred.rb +10 -0
  49. data/lib/br_boleto/retorno/cnab240/itau.rb +24 -0
  50. data/lib/br_boleto/retorno/cnab240/sicredi.rb +10 -0
  51. data/lib/br_boleto/retorno/cnab240/unicred.rb +10 -0
  52. data/lib/br_boleto/retorno/cnab400/bradesco.rb +42 -0
  53. data/lib/br_boleto/retorno/cnab400/itau.rb +43 -0
  54. data/lib/br_boleto/retorno/cnab400/sicoob.rb +2 -2
  55. data/lib/br_boleto/retorno/cnab400/sicredi.rb +43 -0
  56. data/lib/br_boleto/retorno/cnab400/unicred.rb +10 -0
  57. data/lib/br_boleto/retorno/pagamento.rb +18 -4
  58. data/lib/br_boleto/version.rb +2 -2
  59. data/lib/br_boleto.rb +28 -0
  60. data/lib/config/locales/br-boleto-en.yml +1 -0
  61. data/lib/config/locales/br-boleto-pt-BR.yml +1 -0
  62. data/test/br_boleto/association/have_pagador_test.rb +24 -0
  63. data/test/br_boleto/boleto/bradesco_test.rb +125 -0
  64. data/test/br_boleto/boleto/caixa_test.rb +18 -18
  65. data/test/br_boleto/boleto/cecred_test.rb +115 -0
  66. data/test/br_boleto/boleto/itau_test.rb +160 -0
  67. data/test/br_boleto/boleto/sicredi_test.rb +136 -0
  68. data/test/br_boleto/boleto/unicred_test.rb +128 -0
  69. data/test/br_boleto/conta/base_test.rb +298 -3
  70. data/test/br_boleto/conta/bradesco_test.rb +142 -0
  71. data/test/br_boleto/conta/caixa_test.rb +7 -6
  72. data/test/br_boleto/conta/cecred_test.rb +119 -0
  73. data/test/br_boleto/conta/itau_test.rb +189 -0
  74. data/test/br_boleto/conta/sicoob_test.rb +32 -2
  75. data/test/br_boleto/conta/sicredi_test.rb +180 -0
  76. data/test/br_boleto/conta/unicred_test.rb +154 -0
  77. data/test/br_boleto/pagador_test.rb +22 -2
  78. data/test/br_boleto/remessa/cnab240/base_test.rb +24 -12
  79. data/test/br_boleto/remessa/cnab240/bradesco_test.rb +196 -0
  80. data/test/br_boleto/remessa/cnab240/caixa_test.rb +51 -0
  81. data/test/br_boleto/remessa/cnab240/cecred_test.rb +242 -0
  82. data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +78 -71
  83. data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +4 -3
  84. data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +10 -18
  85. data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +6 -5
  86. data/test/br_boleto/remessa/cnab240/itau_test.rb +201 -0
  87. data/test/br_boleto/remessa/cnab240/sicoob_test.rb +1 -58
  88. data/test/br_boleto/remessa/cnab240/sicredi_test.rb +207 -0
  89. data/test/br_boleto/remessa/cnab240/unicred_test.rb +250 -0
  90. data/test/br_boleto/remessa/cnab400/base_test.rb +4 -4
  91. data/test/br_boleto/remessa/cnab400/bradesco_test.rb +164 -0
  92. data/test/br_boleto/remessa/cnab400/itau_test.rb +173 -0
  93. data/test/br_boleto/remessa/cnab400/sicoob_test.rb +2 -2
  94. data/test/br_boleto/remessa/cnab400/sicredi_test.rb +241 -0
  95. data/test/br_boleto/remessa/cnab400/unicred_test.rb +169 -0
  96. data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
  97. data/test/br_boleto/retorno/cnab240/bradesco_test.rb +228 -0
  98. data/test/br_boleto/retorno/cnab240/caixa_test.rb +20 -10
  99. data/test/br_boleto/retorno/cnab240/cecred_test.rb +228 -0
  100. data/test/br_boleto/retorno/cnab240/itau_test.rb +228 -0
  101. data/test/br_boleto/retorno/cnab240/sicoob_test.rb +20 -10
  102. data/test/br_boleto/retorno/cnab240/sicredi_test.rb +228 -0
  103. data/test/br_boleto/retorno/cnab240/unicred_test.rb +228 -0
  104. data/test/br_boleto/retorno/cnab400/bradesco_test.rb +255 -0
  105. data/test/br_boleto/retorno/cnab400/itau_test.rb +96 -0
  106. data/test/br_boleto/retorno/cnab400/sicoob_test.rb +10 -5
  107. data/test/br_boleto/retorno/cnab400/sicredi_test.rb +7 -0
  108. data/test/br_boleto/retorno/cnab400/unicred.rb +255 -0
  109. data/test/br_boleto/retorno/pagamento_test.rb +7 -0
  110. data/test/factories/boleto/boleto_bradesco.rb +18 -0
  111. data/test/factories/boleto/boleto_cecred.rb +18 -0
  112. data/test/factories/boleto/boleto_itau.rb +18 -0
  113. data/test/factories/boleto/boleto_sicredi.rb +18 -0
  114. data/test/factories/boleto/boleto_unicred.rb +18 -0
  115. data/test/factories/conta/bradesco.rb +16 -0
  116. data/test/factories/conta/caixa.rb +2 -1
  117. data/test/factories/conta/cecred.rb +15 -0
  118. data/test/factories/conta/itau.rb +15 -0
  119. data/test/factories/conta/sicoob.rb +2 -1
  120. data/test/factories/conta/sicredi.rb +15 -0
  121. data/test/factories/conta/unicred.rb +15 -0
  122. data/test/factories/remessa/cnab240/bradesco.rb +9 -0
  123. data/test/factories/remessa/cnab240/cecred.rb +9 -0
  124. data/test/factories/remessa/cnab240/itau.rb +9 -0
  125. data/test/factories/remessa/cnab240/sicredi.rb +9 -0
  126. data/test/factories/remessa/cnab240/unicred.rb +9 -0
  127. data/test/factories/remessa/cnab400/bradesco.rb +8 -0
  128. data/test/factories/remessa/cnab400/itau.rb +8 -0
  129. data/test/factories/remessa/cnab400/sicredi.rb +8 -0
  130. data/test/factories/remessa/cnab400/unicred.rb +8 -0
  131. data/test/fixtures/remessa/cnab240/caixa.rem +8 -0
  132. data/test/fixtures/remessa/cnab240/cecred.rem +8 -0
  133. data/test/fixtures/remessa/cnab240/sicoob.rem +8 -8
  134. data/test/fixtures/remessa/cnab240/unicred.rem +7 -0
  135. data/test/fixtures/retorno/cnab400/bradesco.ret +8 -0
  136. data/test/fixtures/retorno/cnab400/itau.ret +54 -0
  137. metadata +138 -3
@@ -1,13 +1,13 @@
1
1
  module Helper
2
2
  module SegmentoPTest
3
- def test_SegmentoPTest_metodo_monta_segmento_p_deve_ter_o_conteudo_dos_metodos_na_sequencia
3
+ def test_SegmentoP_Test_metodo_monta_segmento_p_deve_ter_o_conteudo_dos_metodos_na_sequencia
4
4
  subject.stubs(:segmento_p_posicao_001_a_003).returns(" 001_a_003")
5
5
  subject.stubs(:segmento_p_posicao_004_a_007).with(1).returns(" 004_a_007")
6
6
  subject.stubs(:segmento_p_posicao_008_a_008).returns(" 008_a_008")
7
7
  subject.stubs(:segmento_p_posicao_009_a_013).with(2).returns(" 009_a_013")
8
8
  subject.stubs(:segmento_p_posicao_014_a_014).returns(" 014_a_014")
9
9
  subject.stubs(:segmento_p_posicao_015_a_015).returns(" 015_a_015")
10
- subject.stubs(:segmento_p_posicao_016_a_017).returns(" 016_a_017")
10
+ subject.stubs(:segmento_p_posicao_016_a_017).with(pagamento).returns(" 016_a_017")
11
11
  subject.stubs(:segmento_p_posicao_018_a_022).returns(" 018_a_022")
12
12
  subject.stubs(:segmento_p_posicao_023_a_023).returns(" 023_a_023")
13
13
  subject.stubs(:segmento_p_posicao_024_a_057).with(pagamento).returns(" 024_a_057")
@@ -32,12 +32,12 @@ module Helper
32
32
  subject.stubs(:segmento_p_posicao_151_a_165).with(pagamento).returns(" 151_a_165")
33
33
  subject.stubs(:segmento_p_posicao_166_a_180).with(pagamento).returns(" 166_a_180")
34
34
  subject.stubs(:segmento_p_posicao_181_a_195).with(pagamento).returns(" 181_a_195")
35
- subject.stubs(:segmento_p_posicao_196_a_220).returns(" 196_a_220")
36
- subject.stubs(:segmento_p_posicao_221_a_221).returns(" 221_a_221")
37
- subject.stubs(:segmento_p_posicao_222_a_223).returns(" 222_a_223")
35
+ subject.stubs(:segmento_p_posicao_196_a_220).with(pagamento).returns(" 196_a_220")
36
+ subject.stubs(:segmento_p_posicao_221_a_221).with(pagamento).returns(" 221_a_221")
37
+ subject.stubs(:segmento_p_posicao_222_a_223).with(pagamento).returns(" 222_a_223")
38
38
  subject.stubs(:segmento_p_posicao_224_a_224).returns(" 224_a_224")
39
39
  subject.stubs(:segmento_p_posicao_225_a_227).returns(" 225_a_227")
40
- subject.stubs(:segmento_p_posicao_228_a_229).returns(" 228_a_229")
40
+ subject.stubs(:segmento_p_posicao_228_a_229).with(pagamento).returns(" 228_a_229")
41
41
  subject.stubs(:segmento_p_posicao_230_a_239).returns(" 230_a_239")
42
42
  subject.stubs(:segmento_p_posicao_240_a_240).returns(" 240_a_240")
43
43
  # Deve dar um upcase
@@ -48,7 +48,7 @@ module Helper
48
48
  # 3 posições
49
49
  # Por padrão deve retornar o "codigo_banco"
50
50
  #
51
- def test_SegmentoPTest_metodo_segmento_p_posicao_001_a_003
51
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_001_a_003
52
52
  subject.conta.expects(:codigo_banco).returns("669")
53
53
  subject.segmento_p_posicao_001_a_003.must_equal("669")
54
54
  end
@@ -60,7 +60,7 @@ module Helper
60
60
  # 4 posições
61
61
  # Padrão recebe o nro do lote por parametro e ajusta para 4 caracteres
62
62
  #
63
- def test_SegmentoPTest_metodo_segmento_p_posicao_004_a_007
63
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_004_a_007
64
64
  subject.segmento_p_posicao_004_a_007(5).to_s.rjust(4, '0')
65
65
  end
66
66
 
@@ -68,7 +68,7 @@ module Helper
68
68
  # 1 posição
69
69
  # Por padrão retorna '3'
70
70
  #
71
- def test_SegmentoPTest_metodo_segmento_p_posicao_008_a_008
71
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_008_a_008
72
72
  subject.segmento_p_posicao_008_a_008.must_equal '3'
73
73
  end
74
74
 
@@ -79,7 +79,7 @@ module Helper
79
79
  # 5 posições
80
80
  # recebe o sequencial por parâmetro e ajusta para 5 posições incluindo 0 na frente
81
81
  #
82
- def test_SegmentoPTest_metodo_segmento_p_posicao_009_a_013
82
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_009_a_013
83
83
  subject.segmento_p_posicao_009_a_013(88).must_equal '00088'
84
84
  end
85
85
 
@@ -87,7 +87,7 @@ module Helper
87
87
  # 1 posição
88
88
  # Por padrão é a letra P
89
89
  #
90
- def test_SegmentoPTest_metodo_segmento_p_posicao_014_a_014
90
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_014_a_014
91
91
  subject.segmento_p_posicao_014_a_014.must_equal "P"
92
92
  end
93
93
 
@@ -95,7 +95,7 @@ module Helper
95
95
  # 1 posição
96
96
  # Por padrão é valor em branco
97
97
  #
98
- def test_SegmentoPTest_metodo_segmento_p_posicao_015_a_015
98
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_015_a_015
99
99
  subject.segmento_p_posicao_015_a_015.must_equal ' '
100
100
  end
101
101
 
@@ -103,15 +103,16 @@ module Helper
103
103
  # 2 posições
104
104
  # Por padrão é o valor '01'
105
105
  #
106
- def test_SegmentoPTest_metodo_segmento_p_posicao_016_a_017
107
- subject.segmento_p_posicao_016_a_017.must_equal '01'
106
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_016_a_017#(pagamento)
107
+ pagamento.expects(:identificacao_ocorrencia).returns('01')
108
+ subject.segmento_p_posicao_016_a_017(pagamento).must_equal '01'
108
109
  end
109
110
 
110
111
  # Agência Mantenedora da Conta
111
112
  # 5 posições
112
113
  # Deve pegar a "agencia" e ajustar para 5 caracteres incluindo 0 na frente
113
114
  #
114
- def test_SegmentoPTest_metodo_segmento_p_posicao_018_a_022
115
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_018_a_022
115
116
  subject.conta.expects(:agencia).returns(89)
116
117
  subject.segmento_p_posicao_018_a_022.must_equal '00089'
117
118
  end
@@ -120,7 +121,7 @@ module Helper
120
121
  # 1 posição
121
122
  # Deve pegar o "digito_agencia"
122
123
  #
123
- def test_SegmentoPTest_metodo_segmento_p_posicao_023_a_023
124
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_023_a_023
124
125
  subject.conta.expects(:agencia_dv).returns(1)
125
126
  subject.segmento_p_posicao_023_a_023.must_equal '1'
126
127
  end
@@ -134,7 +135,7 @@ module Helper
134
135
  # 34 posições
135
136
  # Deve pegar o "complemento_p" passando o "pagamento" por parametro
136
137
  #
137
- def test_SegmentoPTest_metodo_segmento_p_posicao_024_a_057
138
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_024_a_057
138
139
  subject.expects(:complemento_p).with('pagamento').returns("complemento_p")
139
140
  subject.segmento_p_posicao_024_a_057('pagamento').must_equal 'complemento_p'
140
141
  end
@@ -143,8 +144,8 @@ module Helper
143
144
  # 1 posição
144
145
  # Deve pegar o valor do metodo "codigo_carteira"
145
146
  #
146
- def test_SegmentoPTest_metodo_segmento_p_posicao_058_a_058
147
- subject.conta.expects(:carteira).returns('3')
147
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_058_a_058
148
+ subject.conta.expects(:codigo_carteira).returns('3')
148
149
  subject.segmento_p_posicao_058_a_058.must_equal '3'
149
150
  end
150
151
 
@@ -152,7 +153,7 @@ module Helper
152
153
  # 1 posição
153
154
  # Deve pegar o valor da "forma_cadastramento"
154
155
  #
155
- def test_SegmentoPTest_metodo_segmento_p_posicao_059_a_059
156
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_059_a_059
156
157
  pagamento.expects(:forma_cadastramento).returns('56')
157
158
  subject.segmento_p_posicao_059_a_059(pagamento).must_equal '5'
158
159
  end
@@ -161,7 +162,7 @@ module Helper
161
162
  # 1 posição
162
163
  # Retorna o valor '2' por padrão
163
164
  #
164
- def test_SegmentoPTest_metodo_segmento_p_posicao_060_a_060
165
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_060_a_060
165
166
  subject.segmento_p_posicao_060_a_060.must_equal '2'
166
167
  end
167
168
 
@@ -169,18 +170,18 @@ module Helper
169
170
  # 1 posição
170
171
  # Deve pegar o valor do metodo "emissao_boleto"
171
172
  #
172
- def test_SegmentoPTest_metodo_segmento_p_posicao_061_a_061
173
- pagamento.expects(:emissao_boleto).returns('123')
174
- subject.segmento_p_posicao_061_a_061(pagamento).must_equal '123'
173
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_061_a_061
174
+ pagamento.expects(:emissao_boleto).returns('3')
175
+ subject.segmento_p_posicao_061_a_061(pagamento).must_equal '3'
175
176
  end
176
177
 
177
178
  # Identificação da Distribuição
178
179
  # 1 posição
179
180
  # Deve pegar o valor do metodo "distribuicao_boleto"
180
181
  #
181
- def test_SegmentoPTest_metodo_segmento_p_posicao_062_a_062
182
- pagamento.expects(:distribuicao_boleto).returns('distribuicao_boleto')
183
- subject.segmento_p_posicao_062_a_062(pagamento).must_equal 'distribuicao_boleto'
182
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_062_a_062
183
+ pagamento.expects(:distribuicao_boleto).returns('2')
184
+ subject.segmento_p_posicao_062_a_062(pagamento).must_equal '2'
184
185
  end
185
186
 
186
187
  # Número do Documento de Cobrança
@@ -188,7 +189,7 @@ module Helper
188
189
  # 15 Posições
189
190
  # Deve retornar o valor do metodo "segmento_p_numero_do_documento" com o pagamento
190
191
  #
191
- def test_SegmentoPTest_metodo_segmento_p_posicao_063_a_077#(pagamento)
192
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_063_a_077#(pagamento)
192
193
  subject.expects(:segmento_p_numero_do_documento).with('pagamento').returns('vpagamento')
193
194
  subject.segmento_p_posicao_063_a_077('pagamento').must_equal 'vpagamento'
194
195
  end
@@ -197,7 +198,7 @@ module Helper
197
198
  # 8 posições
198
199
  # Deve retornar a "data_vencimento" formatada do pagamento
199
200
  #
200
- def test_SegmentoPTest_metodo_segmento_p_posicao_078_a_085#(pagamento)
201
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_078_a_085#(pagamento)
201
202
  pagamento.data_vencimento = Date.today
202
203
  subject.segmento_p_posicao_078_a_085(pagamento).must_equal Date.today.strftime('%d%m%Y')
203
204
  end
@@ -206,7 +207,7 @@ module Helper
206
207
  # 15 posições (13 posições para valor inteiro e 2 posições para valor quebrado)
207
208
  # Deve retornar o "valor_documento_formatado" com 15 posições
208
209
  #
209
- def test_SegmentoPTest_metodo_segmento_p_posicao_086_a_100#(pagamento)
210
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_086_a_100#(pagamento)
210
211
  pagamento.expects(:valor_documento_formatado).with(15).returns("123456789")
211
212
  subject.segmento_p_posicao_086_a_100(pagamento).must_equal '123456789'
212
213
  end
@@ -215,7 +216,7 @@ module Helper
215
216
  # 5 posições
216
217
  # Por padrão é 5 posições em branco
217
218
  #
218
- def test_SegmentoPTest_metodo_segmento_p_posicao_101_a_105
219
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_101_a_105
219
220
  subject.segmento_p_posicao_101_a_105.must_equal ''.rjust(5, '0')
220
221
  end
221
222
 
@@ -223,7 +224,7 @@ module Helper
223
224
  # 1 posição
224
225
  # Padrão é valor em branco
225
226
  #
226
- def test_SegmentoPTest_metodo_segmento_p_posicao_106_a_106
227
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_106_a_106
227
228
  subject.segmento_p_posicao_106_a_106.must_equal ' '
228
229
  end
229
230
 
@@ -231,16 +232,19 @@ module Helper
231
232
  # 2 posições
232
233
  # Deve retornar o valro do metodo "especie_titulo"
233
234
  #
234
- def test_SegmentoPTest_metodo_segmento_p_posicao_107_a_108
235
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_107_a_108
236
+ pagamento.expects(:especie_titulo).returns('01')
237
+ subject.segmento_p_posicao_107_a_108(pagamento).must_equal '01'
238
+
235
239
  pagamento.expects(:especie_titulo).returns('123')
236
- subject.segmento_p_posicao_107_a_108(pagamento).must_equal '12'
240
+ subject.segmento_p_posicao_107_a_108(pagamento).must_equal '99'
237
241
  end
238
242
 
239
243
  # Identific. de Título Aceito/Não Aceito (A ou N)
240
244
  # 1 posição
241
245
  # Deve retornar o valor do "aceite"
242
246
  #
243
- def test_SegmentoPTest_metodo_segmento_p_posicao_109_a_109
247
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_109_a_109
244
248
  pagamento.aceite = true
245
249
  subject.segmento_p_posicao_109_a_109(pagamento).must_equal 'A'
246
250
  pagamento.aceite = false
@@ -251,32 +255,24 @@ module Helper
251
255
  # 8 posições
252
256
  # deve pegar a "data_emissao" do pagamento e formatar
253
257
  #
254
- def test_SegmentoPTest_metodo_segmento_p_posicao_110_a_117#(pagamento)
258
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_110_a_117#(pagamento)
255
259
  pagamento.data_emissao = Date.today
256
260
  subject.segmento_p_posicao_110_a_117(pagamento).must_equal Date.today.strftime('%d%m%Y')
257
261
  end
258
262
 
259
263
  # Código do Juros de Mora
260
264
  # 1 posição
261
- # Por padrão é o valor '0'
265
+ # Por padrão é o valor '3'
262
266
  #
263
- def test_SegmentoPTest_metodo_segmento_p_posicao_118_a_118#(pagamento)
264
- subject.segmento_p_posicao_118_a_118(pagamento).must_equal '3'
265
- end
266
- def test_SegmentoPTest_metodo_segmento_p_posicao_118_a_118_aceita_apenas_1_2_ou_3_com_padrao_3
267
- pagamento.codigo_juros = '1'
268
- subject.segmento_p_posicao_118_a_118(pagamento).must_equal '1'
269
- pagamento.codigo_juros = '2'
270
- subject.segmento_p_posicao_118_a_118(pagamento).must_equal '2'
267
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_118_a_118_deve_pegar_o_codigo_atraves_do_metodo_get_codigo_juros
271
268
  pagamento.codigo_juros = '3'
272
- subject.segmento_p_posicao_118_a_118(pagamento).must_equal '3'
269
+ subject.conta.expects(:get_codigo_juros).with('3').returns('0')
270
+ subject.segmento_p_posicao_118_a_118(pagamento).must_equal '0'
271
+ end
273
272
 
273
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_118_a_118_deve_setar_por_padrao_o_valor_3_se_estiver_vazio
274
274
  pagamento.codigo_juros = nil
275
- subject.segmento_p_posicao_118_a_118(pagamento).must_equal '3'
276
-
277
- pagamento.codigo_juros = '4'
278
- subject.segmento_p_posicao_118_a_118(pagamento).must_equal '3'
279
- pagamento.codigo_juros = '0'
275
+ subject.conta.expects(:get_codigo_juros).with(nil).returns('')
280
276
  subject.segmento_p_posicao_118_a_118(pagamento).must_equal '3'
281
277
  end
282
278
 
@@ -284,7 +280,7 @@ module Helper
284
280
  # 8 posições
285
281
  # Por padrão é 8 posições em branco
286
282
  #
287
- def test_SegmentoPTest_metodo_segmento_p_posicao_119_a_126#(pagamento)
283
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_119_a_126#(pagamento)
288
284
  pagamento.expects(:data_juros_formatado).with('%d%m%Y').returns('1234567890')
289
285
  subject.segmento_p_posicao_119_a_126(pagamento).must_equal '12345678'
290
286
  end
@@ -293,7 +289,7 @@ module Helper
293
289
  # 15 posições
294
290
  # Por padrão é 15 posições em branco
295
291
  #
296
- def test_SegmentoPTest_metodo_segmento_p_posicao_127_a_141#(pagamento)
292
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_127_a_141#(pagamento)
297
293
  pagamento.expects(:valor_juros_formatado).with(15).returns('123456')
298
294
  subject.segmento_p_posicao_127_a_141(pagamento).must_equal '123456'
299
295
  end
@@ -302,8 +298,8 @@ module Helper
302
298
  # 1 posição
303
299
  # Deve pegar o "cod_desconto" do pagamento
304
300
  #
305
- def test_SegmentoPTest_metodo_segmento_p_posicao_142_a_142#(pagamento)
306
- pagamento.expects(:cod_desconto).returns('123')
301
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_142_a_142#(pagamento)
302
+ pagamento.expects(:cod_desconto).returns('1')
307
303
  subject.segmento_p_posicao_142_a_142(pagamento).must_equal '1'
308
304
  end
309
305
 
@@ -311,7 +307,7 @@ module Helper
311
307
  # 8 posições
312
308
  # Deve retornar a "data_desconto_formatado" com formato ddmmyyyy do pagamento
313
309
  #
314
- def test_SegmentoPTest_metodo_segmento_p_posicao_143_a_150#(pagamento)
310
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_143_a_150#(pagamento)
315
311
  pagamento.expects(:data_desconto_formatado).with('%d%m%Y').returns('12345678')
316
312
  subject.segmento_p_posicao_143_a_150(pagamento).must_equal '12345678'
317
313
  end
@@ -320,7 +316,7 @@ module Helper
320
316
  # 15 posições
321
317
  # Deve trazer o 'valor_desconto_formatado' com 15 posições do pagamento
322
318
  #
323
- def test_SegmentoPTest_metodo_segmento_p_posicao_151_a_165#(pagamento)
319
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_151_a_165#(pagamento)
324
320
  pagamento.expects(:valor_desconto_formatado).with(15).returns('132')
325
321
  subject.segmento_p_posicao_151_a_165(pagamento).must_equal '132'
326
322
  end
@@ -329,7 +325,7 @@ module Helper
329
325
  # 15 posições
330
326
  # Deve retornar o "valor_iof_formatado" com 15 posições do pagamento
331
327
  #
332
- def test_SegmentoPTest_metodo_segmento_p_posicao_166_a_180#(pagamento)
328
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_166_a_180#(pagamento)
333
329
  pagamento.expects(:valor_iof_formatado).with(15).returns('123')
334
330
  subject.segmento_p_posicao_166_a_180(pagamento).must_equal '123'
335
331
  end
@@ -338,7 +334,7 @@ module Helper
338
334
  # 15 posições
339
335
  # Deve retornar o "valor_abatimento_formatado" com 15 posições do pagamento
340
336
  #
341
- def test_SegmentoPTest_metodo_segmento_p_posicao_181_a_195#(pagamento)
337
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_181_a_195#(pagamento)
342
338
  pagamento.expects(:valor_abatimento_formatado).with(15).returns('123')
343
339
  subject.segmento_p_posicao_181_a_195(pagamento).must_equal '123'
344
340
  end
@@ -347,7 +343,7 @@ module Helper
347
343
  # 25 posições
348
344
  # Deve retornar 25 posições em branco
349
345
  #
350
- def test_SegmentoPTest_metodo_segmento_p_posicao_196_a_220
346
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_196_a_220
351
347
  subject.segmento_p_posicao_196_a_220(pagamento).must_equal ''.rjust(25, ' ')
352
348
  end
353
349
 
@@ -355,23 +351,33 @@ module Helper
355
351
  # 1 posição
356
352
  # Por padrão é o valor '1'
357
353
  #
358
- def test_SegmentoPTest_metodo_segmento_p_posicao_221_a_221
359
- subject.segmento_p_posicao_221_a_221 .must_equal '1'
354
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_221_a_221#(pagamento)
355
+ pagamento.expects(:codigo_protesto).returns('1')
356
+ subject.segmento_p_posicao_221_a_221(pagamento) .must_equal '1'
360
357
  end
361
358
 
362
359
  # Número de Dias para Protesto
363
360
  # 2 posições
364
- # Por padrão é o valor '00'
361
+ # Para os códigos '3' = Não Protestar e '8' = Negativação sem Protesto,
362
+ # setar dias de protesto '00', caso contrário setar o valor de dias_protesto
365
363
  #
366
- def test_SegmentoPTest_metodo_segmento_p_posicao_222_a_223
367
- subject.segmento_p_posicao_222_a_223.must_equal '00'
364
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_222_a_223#(pagamento)
365
+ pagamento.expects(:codigo_protesto).returns('3')
366
+ subject.segmento_p_posicao_222_a_223(pagamento).must_equal '00'
367
+ pagamento.expects(:codigo_protesto).returns('8')
368
+ subject.segmento_p_posicao_222_a_223(pagamento).must_equal '00'
369
+
370
+ pagamento.expects(:codigo_protesto).returns('1')
371
+ subject.segmento_p_posicao_222_a_223(pagamento).must_equal '03'
372
+ pagamento.expects(:codigo_protesto).returns('2')
373
+ subject.segmento_p_posicao_222_a_223(pagamento).must_equal '03'
368
374
  end
369
375
 
370
376
  # Código para Baixa/Devolução
371
377
  # 1 posição
372
378
  # Por padrão é o valor '0'
373
379
  #
374
- def test_SegmentoPTest_metodo_segmento_p_posicao_224_a_224
380
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_224_a_224
375
381
  subject.segmento_p_posicao_224_a_224.must_equal '0'
376
382
  end
377
383
 
@@ -379,7 +385,7 @@ module Helper
379
385
  # 3 posoções
380
386
  # Por padrão é o valor '000'
381
387
  #
382
- def test_SegmentoPTest_metodo_segmento_p_posicao_225_a_227
388
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_225_a_227
383
389
  subject.segmento_p_posicao_225_a_227.must_equal '000'
384
390
  end
385
391
 
@@ -387,15 +393,16 @@ module Helper
387
393
  # 2 posições
388
394
  # Por padrão é o valor '09'
389
395
  #
390
- def test_SegmentoPTest_metodo_segmento_p_posicao_228_a_229
391
- subject.segmento_p_posicao_228_a_229.must_equal '09'
396
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_228_a_229
397
+ pagamento.expects(:codigo_moeda).returns('09')
398
+ subject.segmento_p_posicao_228_a_229(pagamento).must_equal '09'
392
399
  end
393
400
 
394
401
  # Nº do Contrato da Operação de Crédito (Uso do banco)
395
402
  # 10 posições
396
403
  # Por padrão é 10 pposições em branco
397
404
  #
398
- def test_SegmentoPTest_metodo_segmento_p_posicao_230_a_239
405
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_230_a_239
399
406
  subject.segmento_p_posicao_230_a_239.must_equal ''.rjust(10, '0')
400
407
  end
401
408
 
@@ -403,7 +410,7 @@ module Helper
403
410
  # 1 posição
404
411
  # Por padrão é 1 campo em branco
405
412
  #
406
- def test_SegmentoPTest_metodo_segmento_p_posicao_240_a_240
413
+ def test_SegmentoP_Test_metodo_segmento_p_posicao_240_a_240
407
414
  subject.segmento_p_posicao_240_a_240.must_equal ' '
408
415
  end
409
416
  end
@@ -7,7 +7,7 @@ module Helper
7
7
  subject.stubs(:segmento_q_posicao_009_a_013).with(2).returns( " 009_a_013")
8
8
  subject.stubs(:segmento_q_posicao_014_a_014).returns( " 014_a_014")
9
9
  subject.stubs(:segmento_q_posicao_015_a_015).returns( " 015_a_015")
10
- subject.stubs(:segmento_q_posicao_016_a_017).returns( " 016_a_017")
10
+ subject.stubs(:segmento_q_posicao_016_a_017).with(pagamento).returns(" 016_a_017")
11
11
  subject.stubs(:segmento_q_posicao_018_a_018).with(pagamento).returns(" 018_a_018")
12
12
  subject.stubs(:segmento_q_posicao_019_a_033).with(pagamento).returns(" 019_a_033")
13
13
  subject.stubs(:segmento_q_posicao_034_a_073).with(pagamento).returns(" 034_a_073")
@@ -83,8 +83,9 @@ module Helper
83
83
  # 2 posições
84
84
  # Por padrão é o valor '01'
85
85
  #
86
- def test_SegmentoQTest_metodo_segmento_q_posicao_016_a_017
87
- subject.segmento_q_posicao_016_a_017.must_equal '01'
86
+ def test_SegmentoQTest_metodo_segmento_q_posicao_016_a_017#(pagamento)
87
+ pagamento.expects(:identificacao_ocorrencia).returns('01')
88
+ subject.segmento_p_posicao_016_a_017(pagamento).must_equal '01'
88
89
  end
89
90
 
90
91
  # Tipo de Inscrição (1=CPF 2=CNPJ)
@@ -7,7 +7,7 @@ module Helper
7
7
  subject.stubs(:segmento_r_posicao_009_a_013).with(2).returns( ' 009_a_013')
8
8
  subject.stubs(:segmento_r_posicao_014_a_014).returns( ' 014_a_014')
9
9
  subject.stubs(:segmento_r_posicao_015_a_015).returns( ' 015_a_015')
10
- subject.stubs(:segmento_r_posicao_016_a_017).returns( ' 016_a_017')
10
+ subject.stubs(:segmento_r_posicao_016_a_017).with(pagamento).returns(' 016_a_017')
11
11
  subject.stubs(:segmento_r_posicao_018_a_018).with(pagamento).returns(' 018_a_018')
12
12
  subject.stubs(:segmento_r_posicao_019_a_026).with(pagamento).returns(' 019_a_026')
13
13
  subject.stubs(:segmento_r_posicao_027_a_041).with(pagamento).returns(' 027_a_041')
@@ -89,8 +89,9 @@ module Helper
89
89
  # Código de Movimento Remessa - 01 = Entrada de Titulos
90
90
  # 2 posições
91
91
  #
92
- def test_SegmentoRHelper_metodo_segmento_r_posicao_016_a_017
93
- subject.segmento_r_posicao_016_a_017.must_equal '01'
92
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_016_a_017#(pagamento)
93
+ pagamento.expects(:identificacao_ocorrencia).returns('01')
94
+ subject.segmento_r_posicao_016_a_017(pagamento).must_equal '01'
94
95
  end
95
96
 
96
97
  # Código do desconto 2
@@ -144,24 +145,15 @@ module Helper
144
145
  # Codigo da multa - (0 = isento, 1 = Valor fixo e 2 = Percentual)
145
146
  # 1 posição
146
147
  #
147
- def test_SegmentoRHelper_metodo_segmento_r_posicao_066_a_066#(pagamento)
148
- pagamento.expects(:codigo_multa).returns('11111111')
149
- subject.segmento_r_posicao_066_a_066(pagamento).must_equal '1'
150
- end
151
- def test_SegmentoRHelper_metodo_segmento_r_posicao_066_a_066_aceita_apenas_1_2_ou_3_com_padrao_3
152
- pagamento.codigo_multa = '1'
153
- subject.segmento_r_posicao_066_a_066(pagamento).must_equal '1'
154
- pagamento.codigo_multa = '2'
155
- subject.segmento_r_posicao_066_a_066(pagamento).must_equal '2'
148
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_066_a_066_deve_pegar_o_codigo_atraves_do_metodo_get_codigo_multa
156
149
  pagamento.codigo_multa = '3'
157
- subject.segmento_r_posicao_066_a_066(pagamento).must_equal '3'
150
+ subject.conta.expects(:get_codigo_multa).with('3').returns('0')
151
+ subject.segmento_r_posicao_066_a_066(pagamento).must_equal '0'
152
+ end
158
153
 
154
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_066_a_066_deve_setar_por_padrao_o_valor_3_se_estiver_vazio
159
155
  pagamento.codigo_multa = nil
160
- subject.segmento_r_posicao_066_a_066(pagamento).must_equal '3'
161
-
162
- pagamento.codigo_multa = '4'
163
- subject.segmento_r_posicao_066_a_066(pagamento).must_equal '3'
164
- pagamento.codigo_multa = '0'
156
+ subject.conta.expects(:get_codigo_multa).with(nil).returns('')
165
157
  subject.segmento_r_posicao_066_a_066(pagamento).must_equal '3'
166
158
  end
167
159
 
@@ -8,7 +8,7 @@ module Helper
8
8
  subject.stubs(:segmento_s_posicao_009_a_013).with(2).returns( " 009_a_013")
9
9
  subject.stubs(:segmento_s_posicao_014_a_014).returns( " 014_a_014")
10
10
  subject.stubs(:segmento_s_posicao_015_a_015).returns( " 015_a_015")
11
- subject.stubs(:segmento_s_posicao_016_a_017).returns( " 016_a_017")
11
+ subject.stubs(:segmento_s_posicao_016_a_017).with(pagamento).returns(" 016_a_017")
12
12
  subject.stubs(:segmento_s_posicao_018_a_018).with(pagamento).returns(" 018_a_018")
13
13
 
14
14
  subject.expects(:segmento_s_tipo_impressao_1_ou_2).with(pagamento).returns(" 999")
@@ -24,7 +24,7 @@ module Helper
24
24
  subject.stubs(:segmento_s_posicao_009_a_013).with(2).returns( " 009_a_013")
25
25
  subject.stubs(:segmento_s_posicao_014_a_014).returns( " 014_a_014")
26
26
  subject.stubs(:segmento_s_posicao_015_a_015).returns( " 015_a_015")
27
- subject.stubs(:segmento_s_posicao_016_a_017).returns( " 016_a_017")
27
+ subject.stubs(:segmento_s_posicao_016_a_017).with(pagamento).returns(" 016_a_017")
28
28
  subject.stubs(:segmento_s_posicao_018_a_018).with(pagamento).returns(" 018_a_018")
29
29
 
30
30
  subject.expects(:segmento_s_tipo_impressao_1_ou_2).with(pagamento).returns(" 888")
@@ -40,7 +40,7 @@ module Helper
40
40
  subject.stubs(:segmento_s_posicao_009_a_013).with(2).returns( " 009_a_013")
41
41
  subject.stubs(:segmento_s_posicao_014_a_014).returns( " 014_a_014")
42
42
  subject.stubs(:segmento_s_posicao_015_a_015).returns( " 015_a_015")
43
- subject.stubs(:segmento_s_posicao_016_a_017).returns( " 016_a_017")
43
+ subject.stubs(:segmento_s_posicao_016_a_017).with(pagamento).returns(" 016_a_017")
44
44
  subject.stubs(:segmento_s_posicao_018_a_018).with(pagamento).returns(" 018_a_018")
45
45
 
46
46
  subject.expects(:segmento_s_tipo_impressao_3).with(pagamento).returns(" 777")
@@ -109,8 +109,9 @@ module Helper
109
109
  # Código de Movimento Remessa - 01 = Entrada de Titulos
110
110
  # 2 posições
111
111
  #
112
- def test_SegmentoSHelper_metodo_segmento_s_posicao_016_a_017
113
- subject.segmento_s_posicao_016_a_017.must_equal '01'
112
+ def test_SegmentoSHelper_metodo_segmento_s_posicao_016_a_017#(pagamento)
113
+ pagamento.expects(:identificacao_ocorrencia).returns('01')
114
+ subject.segmento_s_posicao_016_a_017(pagamento).must_equal '01'
114
115
  end
115
116
 
116
117
  # Tipo de impressão