br_boleto 0.1.0 → 1.0.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.
- 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
|