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.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/Gemfile.lock +3 -3
- data/README.markdown +196 -11
- data/Rakefile +5 -0
- data/br_boleto.gemspec +1 -1
- data/lib/br_boleto.rb +30 -12
- data/lib/br_boleto/{core/boleto.rb → boleto/base.rb} +83 -5
- data/lib/br_boleto/boleto/sicoob.rb +211 -0
- data/lib/br_boleto/calculos/modulo11_fator3197.rb +5 -5
- data/lib/br_boleto/helper/cpf_cnpj.rb +60 -0
- data/lib/br_boleto/helper/number.rb +15 -0
- data/lib/br_boleto/remessa/base.rb +89 -0
- data/lib/br_boleto/remessa/cnab240/base.rb +328 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +186 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +180 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +349 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +206 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +261 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +193 -0
- data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +88 -0
- data/lib/br_boleto/remessa/cnab240/helper/trailer_lote.rb +75 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +246 -0
- data/lib/br_boleto/remessa/lote.rb +52 -0
- data/lib/br_boleto/remessa/pagamento.rb +238 -0
- data/lib/br_boleto/string_methods.rb +21 -0
- data/lib/br_boleto/version.rb +2 -2
- data/test/br_boleto/{core/boleto_test.rb → boleto/base_test.rb} +107 -11
- data/test/br_boleto/{core → boleto}/sicoob_test.rb +60 -2
- data/test/br_boleto/remessa/base_test.rb +80 -0
- data/test/br_boleto/remessa/cnab240/base_test.rb +405 -0
- data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +208 -0
- data/test/br_boleto/remessa/cnab240/helper/header_lote_test.rb +200 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +390 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +223 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +260 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +217 -0
- data/test/br_boleto/remessa/cnab240/helper/trailer_arquivo_test.rb +82 -0
- data/test/br_boleto/remessa/cnab240/helper/trailer_lote_test.rb +67 -0
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +347 -0
- data/test/br_boleto/remessa/lote_test.rb +49 -0
- data/test/br_boleto/remessa/pagamento_test.rb +339 -0
- data/test/factories/{boleto.rb → boleto/base.rb} +1 -1
- data/test/factories/{boleto_sicoob.rb → boleto/boleto_sicoob.rb} +1 -1
- data/test/factories/remessa/base.rb +13 -0
- data/test/factories/remessa/cnab240/base.rb +18 -0
- data/test/factories/remessa/cnab240/sicoob.rb +18 -0
- data/test/factories/remessa/lote.rb +7 -0
- data/test/factories/remessa/pagamento.rb +16 -0
- data/test/inheritance/boleto_test.rb +1 -1
- data/test/inheritance/sicoob_test.rb +1 -1
- metadata +65 -13
- 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
|