br_boleto 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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