br_boleto 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/Gemfile.lock +3 -3
  4. data/README.markdown +196 -11
  5. data/Rakefile +5 -0
  6. data/br_boleto.gemspec +1 -1
  7. data/lib/br_boleto.rb +30 -12
  8. data/lib/br_boleto/{core/boleto.rb → boleto/base.rb} +83 -5
  9. data/lib/br_boleto/boleto/sicoob.rb +211 -0
  10. data/lib/br_boleto/calculos/modulo11_fator3197.rb +5 -5
  11. data/lib/br_boleto/helper/cpf_cnpj.rb +60 -0
  12. data/lib/br_boleto/helper/number.rb +15 -0
  13. data/lib/br_boleto/remessa/base.rb +89 -0
  14. data/lib/br_boleto/remessa/cnab240/base.rb +328 -0
  15. data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +186 -0
  16. data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +180 -0
  17. data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +349 -0
  18. data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +206 -0
  19. data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +261 -0
  20. data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +193 -0
  21. data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +88 -0
  22. data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +75 -0
  23. data/lib/br_boleto/remessa/cnab240/sicoob.rb +246 -0
  24. data/lib/br_boleto/remessa/lote.rb +52 -0
  25. data/lib/br_boleto/remessa/pagamento.rb +238 -0
  26. data/lib/br_boleto/string_methods.rb +21 -0
  27. data/lib/br_boleto/version.rb +2 -2
  28. data/test/br_boleto/{core/boleto_test.rb → boleto/base_test.rb} +107 -11
  29. data/test/br_boleto/{core → boleto}/sicoob_test.rb +60 -2
  30. data/test/br_boleto/remessa/base_test.rb +80 -0
  31. data/test/br_boleto/remessa/cnab240/base_test.rb +405 -0
  32. data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +208 -0
  33. data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +200 -0
  34. data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +390 -0
  35. data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +223 -0
  36. data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +260 -0
  37. data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +217 -0
  38. data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +82 -0
  39. data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +67 -0
  40. data/test/br_boleto/remessa/cnab240/sicoob_test.rb +347 -0
  41. data/test/br_boleto/remessa/lote_test.rb +49 -0
  42. data/test/br_boleto/remessa/pagamento_test.rb +339 -0
  43. data/test/factories/{boleto.rb → boleto/base.rb} +1 -1
  44. data/test/factories/{boleto_sicoob.rb → boleto/boleto_sicoob.rb} +1 -1
  45. data/test/factories/remessa/base.rb +13 -0
  46. data/test/factories/remessa/cnab240/base.rb +18 -0
  47. data/test/factories/remessa/cnab240/sicoob.rb +18 -0
  48. data/test/factories/remessa/lote.rb +7 -0
  49. data/test/factories/remessa/pagamento.rb +16 -0
  50. data/test/inheritance/boleto_test.rb +1 -1
  51. data/test/inheritance/sicoob_test.rb +1 -1
  52. metadata +65 -13
  53. data/lib/br_boleto/core/sicoob.rb +0 -169
@@ -0,0 +1,223 @@
1
+ module Helper
2
+ module SegmentoQTest
3
+ def test_SegmentoQTest_metodo_monta_segmento_q_deve_ter_o_conteudo_dos_metodos_na_sequencia
4
+ subject.stubs(:segmento_q_posicao_001_a_003).returns( " 001_a_003")
5
+ subject.stubs(:segmento_q_posicao_004_a_007).with(1).returns( " 004_a_007")
6
+ subject.stubs(:segmento_q_posicao_008_a_008).returns( " 008_a_008")
7
+ subject.stubs(:segmento_q_posicao_009_a_013).with(2).returns( " 009_a_013")
8
+ subject.stubs(:segmento_q_posicao_014_a_014).returns( " 014_a_014")
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")
11
+ subject.stubs(:segmento_q_posicao_018_a_018).with(pagamento).returns(" 018_a_018")
12
+ subject.stubs(:segmento_q_posicao_019_a_033).with(pagamento).returns(" 019_a_033")
13
+ subject.stubs(:segmento_q_posicao_034_a_073).with(pagamento).returns(" 034_a_073")
14
+ subject.stubs(:segmento_q_posicao_074_a_113).with(pagamento).returns(" 074_a_113")
15
+ subject.stubs(:segmento_q_posicao_114_a_128).with(pagamento).returns(" 114_a_128")
16
+ subject.stubs(:segmento_q_posicao_129_a_133).with(pagamento).returns(" 129_a_133")
17
+ subject.stubs(:segmento_q_posicao_134_a_136).with(pagamento).returns(" 134_a_136")
18
+ subject.stubs(:segmento_q_posicao_137_a_151).with(pagamento).returns(" 137_a_151")
19
+ subject.stubs(:segmento_q_posicao_152_a_153).with(pagamento).returns(" 152_a_153")
20
+ subject.stubs(:segmento_q_posicao_154_a_154).with(pagamento).returns(" 154_a_154")
21
+ subject.stubs(:segmento_q_posicao_155_a_169).with(pagamento).returns(" 155_a_169")
22
+ subject.stubs(:segmento_q_posicao_170_a_209).with(pagamento).returns(" 170_a_209")
23
+ subject.stubs(:segmento_q_posicao_210_a_212).returns( " 210_a_212")
24
+ subject.stubs(:segmento_q_posicao_213_a_232).returns( " 213_a_232")
25
+ subject.stubs(:segmento_q_posicao_233_a_240).returns( " 233_a_240")
26
+ # Deve dar um upcase
27
+ subject.monta_segmento_q(pagamento, 1, 2).must_equal(" 001_A_003 004_A_007 008_A_008 009_A_013 014_A_014 015_A_015 016_A_017 018_A_018 019_A_033 034_A_073 074_A_113 114_A_128 129_A_133 134_A_136 137_A_151 152_A_153 154_A_154 155_A_169 170_A_209 210_A_212 213_A_232 233_A_240")
28
+ end
29
+
30
+ # Código do banco
31
+ # 3 posições
32
+ # Por padrão deve retornar o "codigo_banco"
33
+ #
34
+ def test_SegmentoQTest_metodo_segmento_q_posicao_001_a_003
35
+ subject.expects(:codigo_banco).returns("669")
36
+ subject.segmento_q_posicao_001_a_003.must_equal("669")
37
+ end
38
+
39
+ # Lote de Serviço: Número seqüencial para identificar univocamente um lote de serviço.
40
+ # Criado e controlado pelo responsável pela geração magnética dos dados contidos no arquivo.
41
+ # Preencher com '0001' para o primeiro lote do arquivo.
42
+ # Para os demais: número do lote anterior acrescido de 1. O número não poderá ser repetido dentro do arquivo.
43
+ # 4 posições
44
+ # Padrão recebe o nro do lote por parametro e ajusta para 4 caracteres
45
+ #
46
+ def test_SegmentoQTest_metodo_segmento_q_posicao_004_a_007
47
+ subject.segmento_q_posicao_004_a_007(5).to_s.rjust(4, '0')
48
+ end
49
+
50
+ # Tipo do registro -> Padrão 3
51
+ # 1 posição
52
+ # Por padrão retorna '3'
53
+ #
54
+ def test_SegmentoQTest_metodo_segmento_q_posicao_008_a_008
55
+ subject.segmento_q_posicao_008_a_008.must_equal '3'
56
+ end
57
+
58
+ # Nº Sequencial do Registro no Lote
59
+ # 5 posições
60
+ # Deve ajustar o numero sequencial para 5 posições
61
+ #
62
+ def test_SegmentoQTest_metodo_segmento_q_posicao_009_a_013#(sequencial)
63
+ subject.segmento_q_posicao_009_a_013(1).must_equal '00001'
64
+ end
65
+
66
+ # Cód. Segmento do Registro Detalhe
67
+ # 1 posição
68
+ # Por padrão retorna o valor 'Q'
69
+ #
70
+ def test_SegmentoQTest_metodo_segmento_q_posicao_014_a_014
71
+ subject.segmento_q_posicao_014_a_014.must_equal 'Q'
72
+ end
73
+
74
+ # Uso Exclusivo FEBRABAN/CNAB
75
+ # 1 posição
76
+ # Valor em branco
77
+ #
78
+ def test_SegmentoQTest_metodo_segmento_q_posicao_015_a_015
79
+ subject.segmento_q_posicao_015_a_015.must_equal ' '
80
+ end
81
+
82
+ # Código de Movimento Remessa
83
+ # 2 posições
84
+ # Por padrão é o valor '01'
85
+ #
86
+ def test_SegmentoQTest_metodo_segmento_q_posicao_016_a_017
87
+ subject.segmento_q_posicao_016_a_017.must_equal '01'
88
+ end
89
+
90
+ # Tipo de Inscrição (1=CPF 2=CNPJ)
91
+ # 1 posição
92
+ # Deve pegar o 'tipo_documento_sacado' com 1 posição
93
+ #
94
+ def test_SegmentoQTest_metodo_segmento_q_posicao_018_a_018#(pagamento)
95
+ pagamento.expects(:tipo_documento_sacado).with(1).returns('1')
96
+ subject.segmento_q_posicao_018_a_018(pagamento).must_equal '1'
97
+ end
98
+
99
+ # Número de Inscrição
100
+ # 15 posições
101
+ # Deve retornar o "documento_sacado" com 15 posições
102
+ #
103
+ def test_SegmentoQTest_metodo_segmento_q_posicao_019_a_033#(pagamento)
104
+ pagamento.documento_sacado = 1234567890
105
+ subject.segmento_q_posicao_019_a_033(pagamento).must_equal '000001234567890'
106
+ end
107
+
108
+ # Nome do sacado
109
+ # 40 posições
110
+ # Deve retornar o nome do sacado ajustando para 40 posições
111
+ #
112
+ def test_SegmentoQTest_metodo_segmento_q_posicao_034_a_073#(pagamento)
113
+ pagamento.nome_sacado = '556698'
114
+ subject.segmento_q_posicao_034_a_073(pagamento).must_equal '556698'.adjust_size_to(40)
115
+ end
116
+
117
+ # Endereço sacado
118
+ # 40 posições
119
+ # Deve pegar o "endereco_sacado" ajsutando para 40 posições
120
+ #
121
+ def test_SegmentoQTest_metodo_segmento_q_posicao_074_a_113#(pagamento)
122
+ pagamento.endereco_sacado = '111'.rjust(43, '2')
123
+ subject.segmento_q_posicao_074_a_113(pagamento).must_equal ''.rjust(40, '2')
124
+ end
125
+
126
+ # Bairro do sacado
127
+ # 15 posições
128
+ # Deve retornar o 'bairro_sacado' com 15 posições
129
+ #
130
+ def test_SegmentoQTest_metodo_segmento_q_posicao_114_a_128#(pagamento)
131
+ pagamento.bairro_sacado = '50'
132
+ subject.segmento_q_posicao_114_a_128(pagamento).must_equal '50'.adjust_size_to(15)
133
+ end
134
+
135
+ # CEP (prefixo)
136
+ # 5 posições
137
+ # Deve retornar o CEP com 5 posições
138
+ #
139
+ def test_SegmentoQTest_metodo_segmento_q_posicao_129_a_133#(pagamento)
140
+ pagamento.expects(:cep_sacado).returns('12345678')
141
+ subject.segmento_q_posicao_129_a_133(pagamento).must_equal '12345'
142
+ end
143
+
144
+ # CEP sufixo
145
+ # 3 posições
146
+ # Deve pegar as ultimas 3 posições do cep
147
+ #
148
+ def test_SegmentoQTest_metodo_segmento_q_posicao_134_a_136#(pagamento)
149
+ pagamento.expects(:cep_sacado).returns('12345678')
150
+ subject.segmento_q_posicao_134_a_136(pagamento).must_equal '678'
151
+ end
152
+
153
+ # Cidade
154
+ # 15 posições
155
+ # Deve retornar a "cidade_sacado" ajustando para 15 posições
156
+ #
157
+ def test_SegmentoQTest_metodo_segmento_q_posicao_137_a_151#(pagamento)
158
+ pagamento.expects(:cidade_sacado).returns('5555')
159
+ subject.segmento_q_posicao_137_a_151(pagamento).must_equal '5555'.adjust_size_to(15)
160
+ end
161
+
162
+ # Unidade da Federação
163
+ # 2 posuções
164
+ # Retorna o UF do sacado
165
+ #
166
+ def test_SegmentoQTest_metodo_segmento_q_posicao_152_a_153#(pagamento)
167
+ pagamento.expects(:uf_sacado).returns("XX")
168
+ subject.segmento_q_posicao_152_a_153(pagamento).must_equal 'XX'
169
+ end
170
+
171
+ # Tipo de Inscrição
172
+ # 1 posição
173
+ # Deve retornar o "tipo_documento_avalista" com 1 posição do pagamento
174
+ #
175
+ def test_SegmentoQTest_metodo_segmento_q_posicao_154_a_154#(pagamento)
176
+ pagamento.expects(:tipo_documento_avalista).with(1).returns("6")
177
+ subject.segmento_q_posicao_154_a_154(pagamento).must_equal '6'
178
+ end
179
+
180
+ # Número de Inscrição
181
+ # 15 posições
182
+ # Deve pegar o "documento_avalista" com 15 posições
183
+ #
184
+ def test_SegmentoQTest_metodo_segmento_q_posicao_155_a_169#(pagamento)
185
+ pagamento.expects(:documento_avalista).returns(123)
186
+ subject.segmento_q_posicao_155_a_169(pagamento).must_equal '123'.rjust(15, '0')
187
+ end
188
+
189
+ # Nome do avalista
190
+ # 40 posições
191
+ # Deve retornar o "nome_avalista" ajustando para 40 posições
192
+ #
193
+ def test_SegmentoQTest_metodo_segmento_q_posicao_170_a_209#(pagamento)
194
+ pagamento.expects(:nome_avalista).returns('avalista')
195
+ subject.segmento_q_posicao_170_a_209(pagamento).must_equal 'avalista'.adjust_size_to(40)
196
+ end
197
+
198
+ # Cód. Bco. Corresp. na Compensação
199
+ # 3 posições
200
+ # Deve retornar '000'
201
+ #
202
+ def test_SegmentoQTest_metodo_segmento_q_posicao_210_a_212
203
+ subject.segmento_q_posicao_210_a_212.must_equal ''.rjust(3, '0')
204
+ end
205
+
206
+ # Nosso Nº no Banco Correspondente
207
+ # 20 posições
208
+ # Deve retornar 20 posições em branco
209
+ #
210
+ def test_SegmentoQTest_metodo_segmento_q_posicao_213_a_232
211
+ subject.segmento_q_posicao_213_a_232.must_equal ''.rjust(20, ' ')
212
+ end
213
+
214
+ # Uso Exclusivo FEBRABAN/CNAB
215
+ # 8 posições
216
+ # Retorna 8 posições em branco
217
+ #
218
+ def test_SegmentoQTest_metodo_segmento_q_posicao_233_a_240
219
+ subject.segmento_q_posicao_233_a_240.must_equal ''.rjust(8, ' ')
220
+ end
221
+
222
+ end
223
+ end
@@ -0,0 +1,260 @@
1
+ module Helper
2
+ module SegmentoRTest
3
+ def test_SegmentoRTest_metodo_monta_segmento_r_deve_ter_o_conteudo_dos_metodos_na_sequencia
4
+ subject.stubs(:segmento_r_posicao_001_a_003) .returns( ' 001_a_003')
5
+ subject.stubs(:segmento_r_posicao_004_a_007).with(1).returns( ' 004_a_007')
6
+ subject.stubs(:segmento_r_posicao_008_a_008).returns( ' 008_a_008')
7
+ subject.stubs(:segmento_r_posicao_009_a_013).with(2).returns( ' 009_a_013')
8
+ subject.stubs(:segmento_r_posicao_014_a_014).returns( ' 014_a_014')
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')
11
+ subject.stubs(:segmento_r_posicao_018_a_018).with(pagamento).returns(' 018_a_018')
12
+ subject.stubs(:segmento_r_posicao_019_a_026).with(pagamento).returns(' 019_a_026')
13
+ subject.stubs(:segmento_r_posicao_027_a_041).with(pagamento).returns(' 027_a_041')
14
+ subject.stubs(:segmento_r_posicao_042_a_042).with(pagamento).returns(' 042_a_042')
15
+ subject.stubs(:segmento_r_posicao_043_a_050).with(pagamento).returns(' 043_a_050')
16
+ subject.stubs(:segmento_r_posicao_051_a_065).with(pagamento).returns(' 051_a_065')
17
+ subject.stubs(:segmento_r_posicao_066_a_066).with(pagamento).returns(' 066_a_066')
18
+ subject.stubs(:segmento_r_posicao_067_a_074).with(pagamento).returns(' 067_a_074')
19
+ subject.stubs(:segmento_r_posicao_075_a_089).with(pagamento).returns(' 075_a_089')
20
+ subject.stubs(:segmento_r_posicao_090_a_099).returns( ' 090_a_099')
21
+ subject.stubs(:segmento_r_posicao_100_a_139).returns( ' 100_a_139')
22
+ subject.stubs(:segmento_r_posicao_140_a_179).returns( ' 140_a_179')
23
+ subject.stubs(:segmento_r_posicao_180_a_199).returns( ' 180_a_199')
24
+ subject.stubs(:segmento_r_posicao_200_a_207).returns( ' 200_a_207')
25
+ subject.stubs(:segmento_r_posicao_208_a_210).returns( ' 208_a_210')
26
+ subject.stubs(:segmento_r_posicao_211_a_215).returns( ' 211_a_215')
27
+ subject.stubs(:segmento_r_posicao_216_a_216).returns( ' 216_a_216')
28
+ subject.stubs(:segmento_r_posicao_217_a_228).returns( ' 217_a_228')
29
+ subject.stubs(:segmento_r_posicao_229_a_229).returns( ' 229_a_229')
30
+ subject.stubs(:segmento_r_posicao_230_a_230).returns( ' 230_a_230')
31
+ subject.stubs(:segmento_r_posicao_231_a_231).returns( ' 231_a_231')
32
+ subject.stubs(:segmento_r_posicao_232_a_240).returns( ' 232_a_240')
33
+ # Deve dar um upcase
34
+ subject.monta_segmento_r(pagamento, 1, 2).must_equal(" 001_A_003 004_A_007 008_A_008 009_A_013 014_A_014 015_A_015 016_A_017 018_A_018 019_A_026 027_A_041 042_A_042 043_A_050 051_A_065 066_A_066 067_A_074 075_A_089 090_A_099 100_A_139 140_A_179 180_A_199 200_A_207 208_A_210 211_A_215 216_A_216 217_A_228 229_A_229 230_A_230 231_A_231 232_A_240")
35
+ end
36
+
37
+ def test_SegmentoRHelper_deve_ter_240_posicoes
38
+ subject.stubs(:codigo_banco).returns("123")
39
+ subject.monta_segmento_r(pagamento, 1, 2).size.must_equal 240
40
+
41
+ end
42
+
43
+ # Código do banco
44
+ # 3 posições
45
+ #
46
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_001_a_003
47
+ subject.expects(:codigo_banco).returns("123")
48
+ subject.segmento_r_posicao_001_a_003 .must_equal '123'
49
+ end
50
+
51
+ # Lote de Serviço: Número seqüencial para identificar univocamente um lote de serviço.
52
+ # Criado e controlado pelo responsável pela geração magnética dos dados contidos no arquivo.
53
+ # Preencher com '0001' para o primeiro lote do arquivo.
54
+ # Para os demais: número do lote anterior acrescido de 1. O número não poderá ser repetido dentro do arquivo.
55
+ # 4 posições
56
+ #
57
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_004_a_007
58
+ subject.segmento_r_posicao_004_a_007(5).must_equal '0005'
59
+ end
60
+
61
+ # Tipo do registro -> Padrão 3
62
+ # 1 posição
63
+ #
64
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_008_a_008
65
+ subject.segmento_r_posicao_008_a_008.must_equal '3'
66
+ end
67
+
68
+ # Nº Sequencial do Registro no Lote
69
+ # 5 posições
70
+ #
71
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_009_a_013#(sequencial)
72
+ subject.segmento_r_posicao_009_a_013('4').must_equal '00004'
73
+ end
74
+
75
+ # Cód. Segmento do Registro Detalhe
76
+ # 1 posição
77
+ #
78
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_014_a_014
79
+ subject.segmento_r_posicao_014_a_014.must_equal 'R'
80
+ end
81
+
82
+ # Uso Exclusivo FEBRABAN/CNAB
83
+ # 1 posição
84
+ #
85
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_015_a_015
86
+ subject.segmento_r_posicao_015_a_015.must_equal ' '
87
+ end
88
+
89
+ # Código de Movimento Remessa - 01 = Entrada de Titulos
90
+ # 2 posições
91
+ #
92
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_016_a_017
93
+ subject.segmento_r_posicao_016_a_017.must_equal '01'
94
+ end
95
+
96
+ # Código do desconto 2
97
+ # 1 posição
98
+ #
99
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_018_a_018#(pagamento)
100
+ pagamento.expects(:desconto_2_codigo).returns('789')
101
+ subject.segmento_r_posicao_018_a_018(pagamento).must_equal '7'
102
+ end
103
+
104
+ # Data do desconto 2
105
+ # 8 posições
106
+ #
107
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_019_a_026#(pagamento)
108
+ pagamento.expects(:desconto_2_data_formatado).with('%d%m%Y').returns('02022002')
109
+ subject.segmento_r_posicao_019_a_026(pagamento).must_equal '02022002'
110
+ end
111
+
112
+ # Valor do desconto 2
113
+ # 15 posições
114
+ #
115
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_027_a_041#(pagamento)
116
+ pagamento.expects(:desconto_2_valor_formatado).with(15).returns('123456')
117
+ subject.segmento_r_posicao_027_a_041(pagamento).must_equal '123456'
118
+ end
119
+
120
+ # Código do desconto 3
121
+ # 1 posição
122
+ #
123
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_042_a_042#(pagamento)
124
+ pagamento.expects(:desconto_3_codigo).returns('897')
125
+ subject.segmento_r_posicao_042_a_042(pagamento).must_equal '8'
126
+ end
127
+
128
+ # Data do desconto 3
129
+ # 8 posições
130
+ #
131
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_043_a_050#(pagamento)
132
+ pagamento.expects(:desconto_3_data_formatado).with('%d%m%Y').returns('12345678')
133
+ subject.segmento_r_posicao_043_a_050(pagamento).must_equal '12345678'
134
+ end
135
+
136
+ # Valor do desconto 3
137
+ # 15 posições
138
+ #
139
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_051_a_065#(pagamento)
140
+ pagamento.expects(:desconto_3_valor_formatado).with(15).returns('1234567890')
141
+ subject.segmento_r_posicao_051_a_065(pagamento).must_equal '1234567890'
142
+ end
143
+
144
+ # Codigo da multa - (0 = isento, 1 = Valor fixo e 2 = Percentual)
145
+ # 1 posição
146
+ #
147
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_066_a_066#(pagamento)
148
+ pagamento.expects(:codigo_multa).returns('55555555')
149
+ subject.segmento_r_posicao_066_a_066(pagamento).must_equal '5'
150
+ end
151
+
152
+ # Data da multa
153
+ # 1 posição
154
+ #
155
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_067_a_074#(pagamento)
156
+ pagamento.expects(:data_multa_formatado).with('%d%m%Y').returns('12345678')
157
+ subject.segmento_r_posicao_067_a_074(pagamento).must_equal '12345678'
158
+ end
159
+
160
+ # valor da multa
161
+ # 15 posições
162
+ #
163
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_075_a_089#(pagamento)
164
+ pagamento.expects(:valor_multa_formatado).with(15).returns('123456')
165
+ subject.segmento_r_posicao_075_a_089(pagamento).must_equal '123456'
166
+ end
167
+
168
+ # Informação ao pagador
169
+ # 10 posições
170
+ #
171
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_090_a_099
172
+ subject.segmento_r_posicao_090_a_099.must_equal ''.rjust(10, " ")
173
+ end
174
+
175
+ # Informação 3
176
+ # 40 posições
177
+ #
178
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_100_a_139
179
+ subject.segmento_r_posicao_100_a_139.must_equal ''.rjust(40, " ")
180
+ end
181
+
182
+ # Informação 4
183
+ # 40 posições
184
+ #
185
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_140_a_179
186
+ subject.segmento_r_posicao_140_a_179.must_equal ''.rjust(40, " ")
187
+ end
188
+
189
+ # CNAB Uso exclusivo FEBRABAN
190
+ # 20 posições
191
+ #
192
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_180_a_199
193
+ subject.segmento_r_posicao_180_a_199.must_equal ''.rjust(20, " ")
194
+ end
195
+
196
+ # Cod. Ocor. do pagador
197
+ # 8 posições
198
+ #
199
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_200_a_207
200
+ subject.segmento_r_posicao_200_a_207.must_equal ''.rjust(8, "0")
201
+ end
202
+
203
+ # Cod. do banco para débido
204
+ # 3 posições
205
+ #
206
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_208_a_210
207
+ subject.segmento_r_posicao_208_a_210.must_equal ''.rjust(3, "0")
208
+ end
209
+
210
+ # Agencia para débido
211
+ # 5 posições
212
+ #
213
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_211_a_215
214
+ subject.segmento_r_posicao_211_a_215.must_equal ''.rjust(5, "0")
215
+ end
216
+
217
+ # DV agencia para débido
218
+ # 1 posições
219
+ #
220
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_216_a_216
221
+ subject.segmento_r_posicao_216_a_216.must_equal " "
222
+ end
223
+
224
+ # Conta corrente para débito
225
+ # 12 posições
226
+ #
227
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_217_a_228
228
+ subject.segmento_r_posicao_217_a_228.must_equal "".rjust(12, '0')
229
+ end
230
+
231
+ # DV Conta corrente para débito
232
+ # 1 posições
233
+ #
234
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_229_a_229
235
+ subject.segmento_r_posicao_229_a_229.must_equal " "
236
+ end
237
+
238
+ # DV Aencia/Conta
239
+ # 1 posições
240
+ #
241
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_230_a_230
242
+ subject.segmento_r_posicao_230_a_230.must_equal " "
243
+ end
244
+
245
+ # Ident. Da emissão do Aviso Debito Automatico
246
+ # 1 posição
247
+ #
248
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_231_a_231
249
+ subject.segmento_r_posicao_231_a_231.must_equal "0"
250
+ end
251
+
252
+ # Uso exclusivo
253
+ # 9 posições
254
+ #
255
+ def test_SegmentoRHelper_metodo_segmento_r_posicao_232_a_240
256
+ subject.segmento_r_posicao_232_a_240.must_equal "".rjust(9, " ")
257
+ end
258
+
259
+ end
260
+ end