br_boleto 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +1 -1
- data/Gemfile.lock +2 -2
- data/br_boleto.gemspec +2 -3
- data/lib/br_boleto/association/have_conta.rb +27 -25
- data/lib/br_boleto/association/have_pagador.rb +2 -0
- data/lib/br_boleto/boleto/base.rb +0 -4
- data/lib/br_boleto/boleto/bradesco.rb +80 -0
- data/lib/br_boleto/boleto/caixa.rb +10 -12
- data/lib/br_boleto/boleto/cecred.rb +76 -0
- data/lib/br_boleto/boleto/itau.rb +114 -0
- data/lib/br_boleto/boleto/sicredi.rb +101 -0
- data/lib/br_boleto/boleto/unicred.rb +21 -0
- data/lib/br_boleto/conta/base.rb +28 -3
- data/lib/br_boleto/conta/bradesco.rb +120 -0
- data/lib/br_boleto/conta/caixa.rb +22 -12
- data/lib/br_boleto/conta/cecred.rb +67 -0
- data/lib/br_boleto/conta/itau.rb +199 -0
- data/lib/br_boleto/conta/sicoob.rb +40 -11
- data/lib/br_boleto/conta/sicredi.rb +171 -0
- data/lib/br_boleto/conta/unicred.rb +38 -0
- data/lib/br_boleto/helper/default_codes.rb +535 -26
- data/lib/br_boleto/pagador.rb +4 -0
- data/lib/br_boleto/remessa/base.rb +2 -0
- data/lib/br_boleto/remessa/cnab240/base.rb +21 -6
- data/lib/br_boleto/remessa/cnab240/bradesco.rb +141 -0
- data/lib/br_boleto/remessa/cnab240/caixa.rb +8 -1
- data/lib/br_boleto/remessa/cnab240/cecred.rb +169 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +29 -21
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +4 -3
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +5 -5
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +4 -3
- data/lib/br_boleto/remessa/cnab240/itau.rb +186 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +4 -16
- data/lib/br_boleto/remessa/cnab240/sicredi.rb +205 -0
- data/lib/br_boleto/remessa/cnab240/unicred.rb +40 -0
- data/lib/br_boleto/remessa/cnab400/bradesco.rb +235 -0
- data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +6 -5
- data/lib/br_boleto/remessa/cnab400/itau.rb +190 -0
- data/lib/br_boleto/remessa/cnab400/sicoob.rb +3 -3
- data/lib/br_boleto/remessa/cnab400/sicredi.rb +276 -0
- data/lib/br_boleto/remessa/cnab400/unicred.rb +62 -0
- data/lib/br_boleto/remessa/pagamento.rb +93 -43
- data/lib/br_boleto/retorno/cnab240/base.rb +13 -12
- data/lib/br_boleto/retorno/cnab240/bradesco.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/caixa.rb +2 -3
- data/lib/br_boleto/retorno/cnab240/cecred.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/itau.rb +24 -0
- data/lib/br_boleto/retorno/cnab240/sicredi.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/unicred.rb +10 -0
- data/lib/br_boleto/retorno/cnab400/bradesco.rb +42 -0
- data/lib/br_boleto/retorno/cnab400/itau.rb +43 -0
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +2 -2
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +43 -0
- data/lib/br_boleto/retorno/cnab400/unicred.rb +10 -0
- data/lib/br_boleto/retorno/pagamento.rb +18 -4
- data/lib/br_boleto/version.rb +2 -2
- data/lib/br_boleto.rb +28 -0
- data/lib/config/locales/br-boleto-en.yml +1 -0
- data/lib/config/locales/br-boleto-pt-BR.yml +1 -0
- data/test/br_boleto/association/have_pagador_test.rb +24 -0
- data/test/br_boleto/boleto/bradesco_test.rb +125 -0
- data/test/br_boleto/boleto/caixa_test.rb +18 -18
- data/test/br_boleto/boleto/cecred_test.rb +115 -0
- data/test/br_boleto/boleto/itau_test.rb +160 -0
- data/test/br_boleto/boleto/sicredi_test.rb +136 -0
- data/test/br_boleto/boleto/unicred_test.rb +128 -0
- data/test/br_boleto/conta/base_test.rb +298 -3
- data/test/br_boleto/conta/bradesco_test.rb +142 -0
- data/test/br_boleto/conta/caixa_test.rb +7 -6
- data/test/br_boleto/conta/cecred_test.rb +119 -0
- data/test/br_boleto/conta/itau_test.rb +189 -0
- data/test/br_boleto/conta/sicoob_test.rb +32 -2
- data/test/br_boleto/conta/sicredi_test.rb +180 -0
- data/test/br_boleto/conta/unicred_test.rb +154 -0
- data/test/br_boleto/pagador_test.rb +22 -2
- data/test/br_boleto/remessa/cnab240/base_test.rb +24 -12
- data/test/br_boleto/remessa/cnab240/bradesco_test.rb +196 -0
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +51 -0
- data/test/br_boleto/remessa/cnab240/cecred_test.rb +242 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +78 -71
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +4 -3
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +10 -18
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +6 -5
- data/test/br_boleto/remessa/cnab240/itau_test.rb +201 -0
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +1 -58
- data/test/br_boleto/remessa/cnab240/sicredi_test.rb +207 -0
- data/test/br_boleto/remessa/cnab240/unicred_test.rb +250 -0
- data/test/br_boleto/remessa/cnab400/base_test.rb +4 -4
- data/test/br_boleto/remessa/cnab400/bradesco_test.rb +164 -0
- data/test/br_boleto/remessa/cnab400/itau_test.rb +173 -0
- data/test/br_boleto/remessa/cnab400/sicoob_test.rb +2 -2
- data/test/br_boleto/remessa/cnab400/sicredi_test.rb +241 -0
- data/test/br_boleto/remessa/cnab400/unicred_test.rb +169 -0
- data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/bradesco_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/cecred_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/itau_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/sicredi_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/unicred_test.rb +228 -0
- data/test/br_boleto/retorno/cnab400/bradesco_test.rb +255 -0
- data/test/br_boleto/retorno/cnab400/itau_test.rb +96 -0
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +10 -5
- data/test/br_boleto/retorno/cnab400/sicredi_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/unicred.rb +255 -0
- data/test/br_boleto/retorno/pagamento_test.rb +7 -0
- data/test/factories/boleto/boleto_bradesco.rb +18 -0
- data/test/factories/boleto/boleto_cecred.rb +18 -0
- data/test/factories/boleto/boleto_itau.rb +18 -0
- data/test/factories/boleto/boleto_sicredi.rb +18 -0
- data/test/factories/boleto/boleto_unicred.rb +18 -0
- data/test/factories/conta/bradesco.rb +16 -0
- data/test/factories/conta/caixa.rb +2 -1
- data/test/factories/conta/cecred.rb +15 -0
- data/test/factories/conta/itau.rb +15 -0
- data/test/factories/conta/sicoob.rb +2 -1
- data/test/factories/conta/sicredi.rb +15 -0
- data/test/factories/conta/unicred.rb +15 -0
- data/test/factories/remessa/cnab240/bradesco.rb +9 -0
- data/test/factories/remessa/cnab240/cecred.rb +9 -0
- data/test/factories/remessa/cnab240/itau.rb +9 -0
- data/test/factories/remessa/cnab240/sicredi.rb +9 -0
- data/test/factories/remessa/cnab240/unicred.rb +9 -0
- data/test/factories/remessa/cnab400/bradesco.rb +8 -0
- data/test/factories/remessa/cnab400/itau.rb +8 -0
- data/test/factories/remessa/cnab400/sicredi.rb +8 -0
- data/test/factories/remessa/cnab400/unicred.rb +8 -0
- data/test/fixtures/remessa/cnab240/caixa.rem +8 -0
- data/test/fixtures/remessa/cnab240/cecred.rem +8 -0
- data/test/fixtures/remessa/cnab240/sicoob.rem +8 -8
- data/test/fixtures/remessa/cnab240/unicred.rem +7 -0
- data/test/fixtures/retorno/cnab400/bradesco.ret +8 -0
- data/test/fixtures/retorno/cnab400/itau.ret +54 -0
- metadata +138 -3
|
@@ -284,7 +284,30 @@ describe BrBoleto::Remessa::Base do
|
|
|
284
284
|
end
|
|
285
285
|
end
|
|
286
286
|
end
|
|
287
|
+
context "#codigo_carteira" do
|
|
288
|
+
it "por padrão não deve validar nada" do
|
|
289
|
+
subject.codigo_carteira = nil
|
|
290
|
+
wont_be_message_error(:codigo_carteira)
|
|
291
|
+
end
|
|
287
292
|
|
|
293
|
+
context "#valid_codigo_carteira_required" do
|
|
294
|
+
it "quando setado deve validar a obrigatoriedade" do
|
|
295
|
+
wont validate_presence_of(:codigo_carteira)
|
|
296
|
+
|
|
297
|
+
subject.valid_codigo_carteira_required = true
|
|
298
|
+
must validate_presence_of(:codigo_carteira)
|
|
299
|
+
end
|
|
300
|
+
end
|
|
301
|
+
context "#valid_codigo_carteira_length" do
|
|
302
|
+
it "quando setado um valor deve validar através do valor setado" do
|
|
303
|
+
subject.valid_codigo_carteira_length = 7
|
|
304
|
+
subject.codigo_carteira = '12345678'
|
|
305
|
+
must_be_message_error(:codigo_carteira, :custom_length_is, {count: 7})
|
|
306
|
+
subject.codigo_carteira = '1234567'
|
|
307
|
+
wont_be_message_error(:codigo_carteira, :custom_length_is, {count: 7})
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
end
|
|
288
311
|
context "#convenio" do
|
|
289
312
|
it "por padrão não deve validar nada" do
|
|
290
313
|
subject.convenio = nil
|
|
@@ -425,8 +448,9 @@ describe BrBoleto::Remessa::Base do
|
|
|
425
448
|
describe "#agencia_codigo_cedente" do
|
|
426
449
|
it "deve trazer a agencia e o dv separados por /" do
|
|
427
450
|
subject.expects(:agencia).returns(956781)
|
|
428
|
-
subject.expects(:codigo_cedente).returns(
|
|
429
|
-
subject.
|
|
451
|
+
subject.expects(:codigo_cedente).returns(999)
|
|
452
|
+
subject.expects(:codigo_cedente_dv).returns(7)
|
|
453
|
+
subject.agencia_codigo_cedente.must_equal '956781 / 999-7'
|
|
430
454
|
end
|
|
431
455
|
end
|
|
432
456
|
|
|
@@ -486,5 +510,276 @@ describe BrBoleto::Remessa::Base do
|
|
|
486
510
|
end
|
|
487
511
|
end
|
|
488
512
|
|
|
489
|
-
|
|
513
|
+
describe "#tipo_cobranca" do
|
|
514
|
+
it "deve retornar o codigo_carteira se existir" do
|
|
515
|
+
subject.codigo_carteira = '1'
|
|
516
|
+
subject.tipo_cobranca.must_equal '1'
|
|
517
|
+
subject.codigo_carteira = '2'
|
|
518
|
+
subject.tipo_cobranca.must_equal '2'
|
|
519
|
+
end
|
|
520
|
+
it "deve pegar o primeiro caracter da carteira se não houver valor no codigo_carteira" do
|
|
521
|
+
subject.carteira = 'X7'
|
|
522
|
+
subject.tipo_cobranca.must_equal 'X'
|
|
523
|
+
subject.carteira = 'A7'
|
|
524
|
+
subject.tipo_cobranca.must_equal 'A'
|
|
525
|
+
end
|
|
526
|
+
it "se carteira for nil não deve dar erro" do
|
|
527
|
+
subject.carteira = nil
|
|
528
|
+
subject.tipo_cobranca.must_be_nil
|
|
529
|
+
end
|
|
530
|
+
end
|
|
531
|
+
|
|
532
|
+
context "defalt_codes" do
|
|
533
|
+
describe "#get_especie_titulo" do
|
|
534
|
+
context "CÓDIGOS para o cnab 240" do
|
|
535
|
+
it { subject.get_especie_titulo('01', 240).must_equal '01' } # CH – Cheque
|
|
536
|
+
it { subject.get_especie_titulo('02', 240).must_equal '02' } # DM – Duplicata Mercantil
|
|
537
|
+
it { subject.get_especie_titulo('03', 240).must_equal '03' } # DMI – Duplicata Mercantil p/ Indicação
|
|
538
|
+
it { subject.get_especie_titulo('04', 240).must_equal '04' } # DS – Duplicata de Serviço
|
|
539
|
+
it { subject.get_especie_titulo('05', 240).must_equal '05' } # DSI – Duplicata de Serviço p/ Indicação
|
|
540
|
+
it { subject.get_especie_titulo('06', 240).must_equal '06' } # DR – Duplicata Rural
|
|
541
|
+
it { subject.get_especie_titulo('07', 240).must_equal '07' } # LC – Letra de Câmbio
|
|
542
|
+
it { subject.get_especie_titulo('08', 240).must_equal '08' } # NCC – Nota de Crédito Comercial
|
|
543
|
+
it { subject.get_especie_titulo('09', 240).must_equal '09' } # NCE – Nota de Crédito a Exportação
|
|
544
|
+
it { subject.get_especie_titulo('10', 240).must_equal '10' } # NCI – Nota de Crédito Industrial
|
|
545
|
+
it { subject.get_especie_titulo('11', 240).must_equal '11' } # NCR – Nota de Crédito Rural
|
|
546
|
+
it { subject.get_especie_titulo('12', 240).must_equal '12' } # NP – Nota Promissória
|
|
547
|
+
it { subject.get_especie_titulo('13', 240).must_equal '13' } # NPR – Nota Promissória Rural
|
|
548
|
+
it { subject.get_especie_titulo('14', 240).must_equal '14' } # TM – Triplicata Mercantil
|
|
549
|
+
it { subject.get_especie_titulo('15', 240).must_equal '15' } # TS – Triplicata de Serviço
|
|
550
|
+
it { subject.get_especie_titulo('16', 240).must_equal '16' } # NS – Nota de Seguro
|
|
551
|
+
it { subject.get_especie_titulo('17', 240).must_equal '17' } # RC – Recibo
|
|
552
|
+
it { subject.get_especie_titulo('18', 240).must_equal '18' } # FAT – Fatura
|
|
553
|
+
it { subject.get_especie_titulo('19', 240).must_equal '19' } # ND – Nota de Débito
|
|
554
|
+
it { subject.get_especie_titulo('20', 240).must_equal '20' } # AP – Apólice de Seguro
|
|
555
|
+
it { subject.get_especie_titulo('21', 240).must_equal '21' } # ME – Mensalidade Escolar
|
|
556
|
+
it { subject.get_especie_titulo('22', 240).must_equal '22' } # PC – Parcela de Consórcio
|
|
557
|
+
it { subject.get_especie_titulo('23', 240).must_equal '23' } # NF – Nota Fiscal
|
|
558
|
+
it { subject.get_especie_titulo('24', 240).must_equal '24' } # DD – Documento de Dívida
|
|
559
|
+
it { subject.get_especie_titulo('25', 240).must_equal '25' } # Cédula de Produto Rural
|
|
560
|
+
it { subject.get_especie_titulo('26', 240).must_equal '26' } # Warrant
|
|
561
|
+
it { subject.get_especie_titulo('27', 240).must_equal '27' } # Dívida Ativa de Estado
|
|
562
|
+
it { subject.get_especie_titulo('28', 240).must_equal '28' } # Dívida Ativa de Município
|
|
563
|
+
it { subject.get_especie_titulo('29', 240).must_equal '29' } # Dívida Ativa da União
|
|
564
|
+
it { subject.get_especie_titulo('30', 240).must_equal '30' } # Encargos condominiais
|
|
565
|
+
it { subject.get_especie_titulo('31', 240).must_equal '31' } # CC – Cartão de Crédito
|
|
566
|
+
it { subject.get_especie_titulo('32', 240).must_equal '32' } # BDP – Boleto de Proposta
|
|
567
|
+
it { subject.get_especie_titulo('99', 240).must_equal '99' } # Outros
|
|
568
|
+
it { subject.get_especie_titulo('00', 240).must_equal '99' }
|
|
569
|
+
end
|
|
570
|
+
context "CÓDIGOS para o cnab 400" do
|
|
571
|
+
it { subject.get_especie_titulo('01', 400).must_equal '10' } # Cheque
|
|
572
|
+
it { subject.get_especie_titulo('02', 400).must_equal '01' } # Duplicata Mercantil
|
|
573
|
+
it { subject.get_especie_titulo('04', 400).must_equal '12' } # Duplicata de Serviço
|
|
574
|
+
it { subject.get_especie_titulo('06', 400).must_equal '06' } # Duplicata Rural
|
|
575
|
+
it { subject.get_especie_titulo('07', 400).must_equal '08' } # Letra de Câmbio
|
|
576
|
+
it { subject.get_especie_titulo('12', 400).must_equal '02' } # Nota Promissória
|
|
577
|
+
it { subject.get_especie_titulo('14', 400).must_equal '14' } # Triplicata Mercantil
|
|
578
|
+
it { subject.get_especie_titulo('15', 400).must_equal '15' } # Triplicata de Serviço
|
|
579
|
+
it { subject.get_especie_titulo('16', 400).must_equal '03' } # Nota de Seguro
|
|
580
|
+
it { subject.get_especie_titulo('17', 400).must_equal '05' } # Recibo
|
|
581
|
+
it { subject.get_especie_titulo('18', 400).must_equal '18' } # Fatura
|
|
582
|
+
it { subject.get_especie_titulo('19', 400).must_equal '13' } # Nota de Débito
|
|
583
|
+
it { subject.get_especie_titulo('20', 400).must_equal '20' } # Apólice de Seguro
|
|
584
|
+
it { subject.get_especie_titulo('21', 400).must_equal '21' } # Mensalidade Escolar
|
|
585
|
+
it { subject.get_especie_titulo('22', 400).must_equal '22' } # Parcela de Consórcio
|
|
586
|
+
it { subject.get_especie_titulo('26', 400).must_equal '09' } # Warrant
|
|
587
|
+
it { subject.get_especie_titulo('99', 400).must_equal '99' } # Outros"
|
|
588
|
+
it { subject.get_especie_titulo('00', 400).must_equal '99' }
|
|
589
|
+
end
|
|
590
|
+
end
|
|
591
|
+
describe "#get_codigo_movimento_remessa" do
|
|
592
|
+
context "CÓDIGOS para o cnab 240" do
|
|
593
|
+
it { subject.get_codigo_movimento_remessa('01',240).must_equal '01' } # Entrada de Títulos
|
|
594
|
+
it { subject.get_codigo_movimento_remessa('02',240).must_equal '02' } # Pedido de Baixa
|
|
595
|
+
it { subject.get_codigo_movimento_remessa('03',240).must_equal '03' } # Protesto para Fins Falimentares
|
|
596
|
+
it { subject.get_codigo_movimento_remessa('04',240).must_equal '04' } # Concessão de Abatimento
|
|
597
|
+
it { subject.get_codigo_movimento_remessa('05',240).must_equal '05' } # Cancelamento de Abatimento
|
|
598
|
+
it { subject.get_codigo_movimento_remessa('06',240).must_equal '06' } # Alteração de Vencimento
|
|
599
|
+
it { subject.get_codigo_movimento_remessa('07',240).must_equal '07' } # Concessão de Desconto
|
|
600
|
+
it { subject.get_codigo_movimento_remessa('08',240).must_equal '08' } # Cancelamento de Desconto
|
|
601
|
+
it { subject.get_codigo_movimento_remessa('09',240).must_equal '09' } # Pedido de protesto (Protestar)
|
|
602
|
+
it { subject.get_codigo_movimento_remessa('10',240).must_equal '10' } # Sustar Protesto e Baixar Título
|
|
603
|
+
it { subject.get_codigo_movimento_remessa('11',240).must_equal '11' } # Sustar Protesto e Manter em Carteira
|
|
604
|
+
it { subject.get_codigo_movimento_remessa('12',240).must_equal '12' } # Alteração de Juros de Mora
|
|
605
|
+
it { subject.get_codigo_movimento_remessa('13',240).must_equal '13' } # Dispensar Cobrança de Juros de Mora
|
|
606
|
+
it { subject.get_codigo_movimento_remessa('14',240).must_equal '14' } # Alteração de Valor/Percentual de Multa
|
|
607
|
+
it { subject.get_codigo_movimento_remessa('15',240).must_equal '15' } # Dispensar Cobrança de Multa
|
|
608
|
+
it { subject.get_codigo_movimento_remessa('16',240).must_equal '16' } # Alteração do Valor de Desconto
|
|
609
|
+
it { subject.get_codigo_movimento_remessa('17',240).must_equal '17' } # Não conceder Desconto
|
|
610
|
+
it { subject.get_codigo_movimento_remessa('18',240).must_equal '18' } # Alteração do Valor de Abatimento
|
|
611
|
+
it { subject.get_codigo_movimento_remessa('19',240).must_equal '19' } # Prazo Limite de Recebimento – Alterar
|
|
612
|
+
it { subject.get_codigo_movimento_remessa('20',240).must_equal '20' } # Prazo Limite de Recebimento – Dispensar
|
|
613
|
+
it { subject.get_codigo_movimento_remessa('21',240).must_equal '21' } # Alterar número do título dado pelo beneficiario
|
|
614
|
+
it { subject.get_codigo_movimento_remessa('22',240).must_equal '22' } # Alterar número controle do Participante (seu número)
|
|
615
|
+
it { subject.get_codigo_movimento_remessa('23',240).must_equal '23' } # Alterar dados do Pagador
|
|
616
|
+
it { subject.get_codigo_movimento_remessa('24',240).must_equal '24' } # Alterar dados do Sacador/Avalista
|
|
617
|
+
it { subject.get_codigo_movimento_remessa('30',240).must_equal '30' } # Recusa da Alegação do Pagador
|
|
618
|
+
it { subject.get_codigo_movimento_remessa('31',240).must_equal '31' } # Alteração de Outros Dados
|
|
619
|
+
it { subject.get_codigo_movimento_remessa('33',240).must_equal '33' } # Alteração dos Dados do Rateio de Crédito
|
|
620
|
+
it { subject.get_codigo_movimento_remessa('34',240).must_equal '34' } # Pedido de Cancelamento dos Dados do Rateio de Crédito
|
|
621
|
+
it { subject.get_codigo_movimento_remessa('35',240).must_equal '35' } # Pedido de Desagendamento do Débito Automático
|
|
622
|
+
it { subject.get_codigo_movimento_remessa('40',240).must_equal '40' } # Alteração de Carteira
|
|
623
|
+
it { subject.get_codigo_movimento_remessa('41',240).must_equal '41' } # Cancelar protesto
|
|
624
|
+
it { subject.get_codigo_movimento_remessa('42',240).must_equal '42' } # Alteração de Espécie de Título
|
|
625
|
+
it { subject.get_codigo_movimento_remessa('43',240).must_equal '43' } # Transferência de carteira/modalidade de cobrança
|
|
626
|
+
it { subject.get_codigo_movimento_remessa('44',240).must_equal '44' } # Alteração de contrato de cobrança
|
|
627
|
+
it { subject.get_codigo_movimento_remessa('45',240).must_equal '45' } # Negativação Sem Protesto
|
|
628
|
+
it { subject.get_codigo_movimento_remessa('46',240).must_equal '46' } # Solicitação de Baixa de Título Negativado Sem Protesto
|
|
629
|
+
it { subject.get_codigo_movimento_remessa('47',240).must_equal '47' } # Alteração do Valor Nominal do Título
|
|
630
|
+
it { subject.get_codigo_movimento_remessa('48',240).must_equal '48' } # Alteração do Valor Mínimo/ Percentual
|
|
631
|
+
it { subject.get_codigo_movimento_remessa('49',240).must_equal '49' } # Alteração do Valor Máximo/Percentua
|
|
632
|
+
it { subject.get_codigo_movimento_remessa('00', 240).must_equal '31' }
|
|
633
|
+
end
|
|
634
|
+
context "CÓDIGOS para o cnab 400" do
|
|
635
|
+
it { subject.get_codigo_movimento_remessa('01', 400).must_equal '01' } # Registro de títulos / Remessa
|
|
636
|
+
it { subject.get_codigo_movimento_remessa('02', 400).must_equal '02' } # Pedido de Baixa
|
|
637
|
+
it { subject.get_codigo_movimento_remessa('03', 400).must_equal '03' } # Pedido de Protesto Falimentar
|
|
638
|
+
it { subject.get_codigo_movimento_remessa('04', 400).must_equal '04' } # Concessão de abatimento
|
|
639
|
+
it { subject.get_codigo_movimento_remessa('05', 400).must_equal '05' } # Cancelamento de abatimento concedido
|
|
640
|
+
it { subject.get_codigo_movimento_remessa('06', 400).must_equal '06' } # Alteração de vencimento
|
|
641
|
+
it { subject.get_codigo_movimento_remessa('09', 400).must_equal '09' } # Pedido de protesto (Protestar)
|
|
642
|
+
it { subject.get_codigo_movimento_remessa('22', 400).must_equal '08' } # Alterar número controle do Participante (seu número)
|
|
643
|
+
it { subject.get_codigo_movimento_remessa('31', 400).must_equal '31' } # Alteração de outros dados
|
|
644
|
+
it { subject.get_codigo_movimento_remessa('00', 400).must_equal '31' }
|
|
645
|
+
end
|
|
646
|
+
end
|
|
647
|
+
describe "#get_tipo_cobranca_240" do
|
|
648
|
+
it { subject.get_tipo_cobranca('1', 240).must_equal '1' } # Cobrança Simples
|
|
649
|
+
it { subject.get_tipo_cobranca('2', 240).must_equal '2' } # Cobrança Vinculada
|
|
650
|
+
it { subject.get_tipo_cobranca('3', 240).must_equal '3' } # Cobrança Caucionada
|
|
651
|
+
it { subject.get_tipo_cobranca('4', 240).must_equal '4' } # Cobrança Descontada
|
|
652
|
+
it { subject.get_tipo_cobranca('5', 240).must_equal '5' } # Cobrança Vendor
|
|
653
|
+
it { subject.get_tipo_cobranca('00', 240).must_equal '00' }
|
|
654
|
+
end
|
|
655
|
+
describe "#get_tipo_cobranca_400" do
|
|
656
|
+
it { subject.get_tipo_cobranca('1', 400).must_equal '1' } # Cobrança Simples
|
|
657
|
+
it { subject.get_tipo_cobranca('2', 400).must_equal '2' } # Cobrança Vinculada
|
|
658
|
+
it { subject.get_tipo_cobranca('3', 400).must_equal '3' } # Cobrança Caucionada
|
|
659
|
+
it { subject.get_tipo_cobranca('4', 400).must_equal '4' } # Cobrança Descontada
|
|
660
|
+
it { subject.get_tipo_cobranca('5', 400).must_equal '5' } # Cobrança Vendor
|
|
661
|
+
it { subject.get_tipo_cobranca('00', 400).must_equal '00' }
|
|
662
|
+
end
|
|
663
|
+
describe "#get_identificacao_emissao_240" do
|
|
664
|
+
it { subject.get_identificacao_emissao('1', 240).must_equal '1' } # Banco Emite
|
|
665
|
+
it { subject.get_identificacao_emissao('2', 240).must_equal '2' } # Cliente Emite
|
|
666
|
+
it { subject.get_identificacao_emissao('3', 240).must_equal '3' } # Banco Pré-emite e Cliente Complementa
|
|
667
|
+
it { subject.get_identificacao_emissao('4', 240).must_equal '4' } # Banco Reemite
|
|
668
|
+
it { subject.get_identificacao_emissao('5', 240).must_equal '5' } # Banco Não Reemite
|
|
669
|
+
it { subject.get_identificacao_emissao('7', 240).must_equal '7' } # Banco Emitente - Aberta
|
|
670
|
+
it { subject.get_identificacao_emissao('8', 240).must_equal '8' } # Banco Emitente - Auto-envelopável
|
|
671
|
+
it { subject.get_identificacao_emissao('99', 240).must_equal '99' }
|
|
672
|
+
end
|
|
673
|
+
describe "#get_identificacao_emissao_400" do
|
|
674
|
+
it { subject.get_identificacao_emissao('1', 400).must_equal '1' } # Banco Emite
|
|
675
|
+
it { subject.get_identificacao_emissao('2', 400).must_equal '2' } # Cliente Emite
|
|
676
|
+
it { subject.get_identificacao_emissao('3', 400).must_equal '3' } # Banco Pré-emite e Cliente Complementa
|
|
677
|
+
it { subject.get_identificacao_emissao('4', 400).must_equal '4' } # Banco Reemite
|
|
678
|
+
it { subject.get_identificacao_emissao('5', 400).must_equal '5' } # Banco Não Reemite
|
|
679
|
+
it { subject.get_identificacao_emissao('7', 400).must_equal '7' } # Banco Emitente - Aberta
|
|
680
|
+
it { subject.get_identificacao_emissao('8', 400).must_equal '8' } # Banco Emitente - Auto-envelopável
|
|
681
|
+
it { subject.get_identificacao_emissao('00', 400).must_equal '00' }
|
|
682
|
+
end
|
|
683
|
+
describe "#get_distribuicao_boleto" do
|
|
684
|
+
it { subject.get_distribuicao_boleto('1').must_equal '1' } # Banco Distribui
|
|
685
|
+
it { subject.get_distribuicao_boleto('2').must_equal '2' } # Cliente Distribui
|
|
686
|
+
it { subject.get_distribuicao_boleto('3').must_equal '3' } # Banco envia e-mail
|
|
687
|
+
it { subject.get_distribuicao_boleto('4').must_equal '4' } # Banco envia SMS
|
|
688
|
+
it { subject.get_distribuicao_boleto('00').must_equal '00' }
|
|
689
|
+
end
|
|
690
|
+
describe "#get_tipo_impressao_240" do
|
|
691
|
+
it { subject.get_tipo_impressao('1', 240).must_equal '1' } # Frente do Bloqueto
|
|
692
|
+
it { subject.get_tipo_impressao('2', 240).must_equal '2' } # Verso do Bloqueto
|
|
693
|
+
it { subject.get_tipo_impressao('3', 240).must_equal '3' } # Corpo de Instruções da Ficha de Compensação do Bloqueto
|
|
694
|
+
it { subject.get_tipo_impressao('7', 240).must_equal '7' } # Outros
|
|
695
|
+
it { subject.get_tipo_impressao('999', 240).must_equal '999' } # Outros
|
|
696
|
+
end
|
|
697
|
+
describe "#get_tipo_impressao_400" do
|
|
698
|
+
it { subject.get_tipo_impressao('1', 400).must_equal '1' } # Frente do Bloqueto
|
|
699
|
+
it { subject.get_tipo_impressao('2', 400).must_equal '2' } # Verso do Bloqueto
|
|
700
|
+
it { subject.get_tipo_impressao('3', 400).must_equal '3' } # Corpo de Instruções da Ficha de Compensação do Bloqueto
|
|
701
|
+
it { subject.get_tipo_impressao('7', 400).must_equal '7' } # Outros
|
|
702
|
+
it { subject.get_tipo_impressao('999', 400).must_equal '999' } # Outros
|
|
703
|
+
end
|
|
704
|
+
describe "#get_codigo_juros" do
|
|
705
|
+
it { subject.get_codigo_juros('1').must_equal '1' } # Valor por Dia
|
|
706
|
+
it { subject.get_codigo_juros('2').must_equal '2' } # Taxa Mensal
|
|
707
|
+
it { subject.get_codigo_juros('3').must_equal '3' } # Isento
|
|
708
|
+
it 'se passar um valor inexistente deve pegar o valor padrão' do
|
|
709
|
+
subject.expects(:default_codigo_juros).returns(8)
|
|
710
|
+
subject.get_codigo_juros('00').must_equal 8
|
|
711
|
+
end
|
|
712
|
+
it '#default_codigo_juros deve ter o valor 3 por padrão' do
|
|
713
|
+
subject.default_codigo_juros.must_equal '3'
|
|
714
|
+
end
|
|
715
|
+
end
|
|
716
|
+
describe "#get_codigo_multa" do
|
|
717
|
+
it { subject.get_codigo_multa('1').must_equal '1' } # Valor fixo
|
|
718
|
+
it { subject.get_codigo_multa('2').must_equal '2' } # Percentual
|
|
719
|
+
it { subject.get_codigo_multa('3').must_equal '3' } # Isento
|
|
720
|
+
it { subject.get_codigo_multa('9').must_equal '3' }
|
|
721
|
+
it 'se passar um valor inexistente deve pegar o valor padrão' do
|
|
722
|
+
subject.expects(:default_codigo_multa).returns(8)
|
|
723
|
+
subject.get_codigo_multa('9').must_equal 8
|
|
724
|
+
end
|
|
725
|
+
it '#default_codigo_multa deve ter o valor 3 por padrão' do
|
|
726
|
+
subject.default_codigo_multa.must_equal '3'
|
|
727
|
+
end
|
|
728
|
+
end
|
|
729
|
+
describe "#get_codigo_desconto" do
|
|
730
|
+
it { subject.get_codigo_desconto('0').must_equal '0' } # Sem Desconto
|
|
731
|
+
it { subject.get_codigo_desconto('1').must_equal '1' } # Valor Fixo Até a Data Informada
|
|
732
|
+
it { subject.get_codigo_desconto('2').must_equal '2' } # Percentual Até a Data Informada
|
|
733
|
+
it { subject.get_codigo_desconto('3').must_equal '3' } # Valor por Antecipação Dia Corrido
|
|
734
|
+
it { subject.get_codigo_desconto('4').must_equal '4' } # Valor por Antecipação Dia Úti
|
|
735
|
+
it { subject.get_codigo_desconto('5').must_equal '5' } # Percentual Sobre o Valor Nominal Dia Corrido
|
|
736
|
+
it { subject.get_codigo_desconto('6').must_equal '6' } # Percentual Sobre o Valor Nominal Dia Útil
|
|
737
|
+
it { subject.get_codigo_desconto('7').must_equal '7' } # Cancelamento de Desconto
|
|
738
|
+
it { subject.get_codigo_desconto('55').must_equal '55' }
|
|
739
|
+
end
|
|
740
|
+
describe "#get_codigo_protesto" do
|
|
741
|
+
it { subject.get_codigo_protesto('1').must_equal '1' } # Protestar Dias Corridos
|
|
742
|
+
it { subject.get_codigo_protesto('2').must_equal '2' } # Protestar Dias Úteis
|
|
743
|
+
it { subject.get_codigo_protesto('3').must_equal '3' } # Não Protesta
|
|
744
|
+
it { subject.get_codigo_protesto('4').must_equal '4' } # Protestar Fim Falimentar - Dias Úteis
|
|
745
|
+
it { subject.get_codigo_protesto('5').must_equal '5' } # Protestar Fim Falimentar - Dias Corridos
|
|
746
|
+
it { subject.get_codigo_protesto('8').must_equal '8' } # Negativação sem Protesto
|
|
747
|
+
it { subject.get_codigo_protesto('9').must_equal '9' } # Cancelamento Protesto Automático
|
|
748
|
+
it { subject.get_codigo_protesto('55').must_equal '55' }
|
|
749
|
+
end
|
|
750
|
+
describe "#get_codigo_moeda_240" do
|
|
751
|
+
it { subject.get_codigo_moeda('01', 240).must_equal '01' } # Reservado para Uso Futuro
|
|
752
|
+
it { subject.get_codigo_moeda('02', 240).must_equal '02' } # Dólar Americano Comercial (Venda)
|
|
753
|
+
it { subject.get_codigo_moeda('03', 240).must_equal '03' } # Dólar Americano Turismo (Venda)
|
|
754
|
+
it { subject.get_codigo_moeda('04', 240).must_equal '04' } # ITRD
|
|
755
|
+
it { subject.get_codigo_moeda('05', 240).must_equal '05' } # IDTR
|
|
756
|
+
it { subject.get_codigo_moeda('06', 240).must_equal '06' } # UFIR Diária
|
|
757
|
+
it { subject.get_codigo_moeda('07', 240).must_equal '07' } # UFIR Mensal
|
|
758
|
+
it { subject.get_codigo_moeda('08', 240).must_equal '08' } # FAJ - TR
|
|
759
|
+
it { subject.get_codigo_moeda('09', 240).must_equal '09' } # Real
|
|
760
|
+
it { subject.get_codigo_moeda('10', 240).must_equal '10' } # TR
|
|
761
|
+
it { subject.get_codigo_moeda('11', 240).must_equal '11' } # IGPM
|
|
762
|
+
it { subject.get_codigo_moeda('12', 240).must_equal '12' } # CDI
|
|
763
|
+
it { subject.get_codigo_moeda('13', 240).must_equal '13' } # Percentual do CDI
|
|
764
|
+
it { subject.get_codigo_moeda('14', 240).must_equal '14' } # Euro
|
|
765
|
+
it { subject.get_codigo_moeda('55', 240).must_equal '55' }
|
|
766
|
+
end
|
|
767
|
+
describe "#get_codigo_moeda_400" do
|
|
768
|
+
it { subject.get_codigo_moeda('01', 400).must_equal '01' } # Reservado para Uso Futuro
|
|
769
|
+
it { subject.get_codigo_moeda('02', 400).must_equal '02' } # Dólar Americano Comercial (Venda)
|
|
770
|
+
it { subject.get_codigo_moeda('03', 400).must_equal '03' } # Dólar Americano Turismo (Venda)
|
|
771
|
+
it { subject.get_codigo_moeda('04', 400).must_equal '04' } # ITRD
|
|
772
|
+
it { subject.get_codigo_moeda('05', 400).must_equal '05' } # IDTR
|
|
773
|
+
it { subject.get_codigo_moeda('06', 400).must_equal '06' } # UFIR Diária
|
|
774
|
+
it { subject.get_codigo_moeda('07', 400).must_equal '07' } # UFIR Mensal
|
|
775
|
+
it { subject.get_codigo_moeda('08', 400).must_equal '08' } # FAJ - TR
|
|
776
|
+
it { subject.get_codigo_moeda('09', 400).must_equal '09' } # Real
|
|
777
|
+
it { subject.get_codigo_moeda('10', 400).must_equal '10' } # TR
|
|
778
|
+
it { subject.get_codigo_moeda('11', 400).must_equal '11' } # IGPM
|
|
779
|
+
it { subject.get_codigo_moeda('12', 400).must_equal '12' } # CDI
|
|
780
|
+
it { subject.get_codigo_moeda('13', 400).must_equal '13' } # Percentual do CDI
|
|
781
|
+
it { subject.get_codigo_moeda('14', 400).must_equal '14' } # Euro
|
|
782
|
+
it { subject.get_codigo_moeda('55', 400).must_equal '55' }
|
|
783
|
+
end
|
|
784
|
+
end
|
|
490
785
|
end
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe BrBoleto::Conta::Bradesco do
|
|
4
|
+
subject { FactoryGirl.build(:conta_bradesco) }
|
|
5
|
+
|
|
6
|
+
it "deve herdar de Conta::Base" do
|
|
7
|
+
subject.class.superclass.must_equal BrBoleto::Conta::Base
|
|
8
|
+
end
|
|
9
|
+
context "valores padrões" do
|
|
10
|
+
it "deve setar a carteira com '06' " do
|
|
11
|
+
subject.class.new.carteira.must_equal '06'
|
|
12
|
+
end
|
|
13
|
+
it "deve setar a valid_agencia_length com 4 " do
|
|
14
|
+
subject.class.new.valid_agencia_length.must_equal 4
|
|
15
|
+
end
|
|
16
|
+
it "deve setar a valid_carteira_required com true " do
|
|
17
|
+
subject.class.new.valid_carteira_required.must_equal true
|
|
18
|
+
end
|
|
19
|
+
it "deve setar a valid_carteira_length com 2 " do
|
|
20
|
+
subject.class.new.valid_carteira_length.must_equal 2
|
|
21
|
+
end
|
|
22
|
+
it "deve setar a valid_conta_corrente_required com true " do
|
|
23
|
+
subject.class.new.valid_conta_corrente_required.must_equal true
|
|
24
|
+
end
|
|
25
|
+
it "deve setar a valid_conta_corrente_maximum com 7 " do
|
|
26
|
+
subject.class.new.valid_conta_corrente_maximum.must_equal 7
|
|
27
|
+
end
|
|
28
|
+
it "deve setar a valid_codigo_cedente_maximum com 7 " do
|
|
29
|
+
subject.class.new.valid_codigo_cedente_maximum.must_equal 7
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
describe "Validations" do
|
|
33
|
+
it { must validate_presence_of(:agencia) }
|
|
34
|
+
it { must validate_presence_of(:razao_social) }
|
|
35
|
+
it { must validate_presence_of(:cpf_cnpj) }
|
|
36
|
+
it do
|
|
37
|
+
subject.agencia_dv = 21
|
|
38
|
+
must_be_message_error(:agencia_dv, :custom_length_is, {count: 1})
|
|
39
|
+
end
|
|
40
|
+
context 'Validações padrões da carteira' do
|
|
41
|
+
subject { BrBoleto::Conta::Bradesco.new }
|
|
42
|
+
it { must validate_presence_of(:carteira) }
|
|
43
|
+
it 'Tamanho deve ser de 2' do
|
|
44
|
+
subject.carteira = '132'
|
|
45
|
+
must_be_message_error(:carteira, :custom_length_is, {count: 2})
|
|
46
|
+
end
|
|
47
|
+
it "valores aceitos" do
|
|
48
|
+
subject.carteira = '04'
|
|
49
|
+
must_be_message_error(:carteira, :custom_inclusion, {list: '06, 09, 19, 21, 22'})
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
context 'Validações padrões da conta_corrente' do
|
|
53
|
+
subject { BrBoleto::Conta::Bradesco.new }
|
|
54
|
+
it { must validate_presence_of(:conta_corrente) }
|
|
55
|
+
it 'Tamanho deve ter o tamanho maximo de 7' do
|
|
56
|
+
subject.conta_corrente = '12345678'
|
|
57
|
+
must_be_message_error(:conta_corrente, :custom_length_maximum, {count: 7})
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
context 'Validações padrões da codigo_cedente' do
|
|
61
|
+
subject { BrBoleto::Conta::Bradesco.new }
|
|
62
|
+
it 'Tamanho deve ter o tamanho maximo de 7' do
|
|
63
|
+
subject.codigo_cedente = '12345678'
|
|
64
|
+
must_be_message_error(:convenio, :custom_length_maximum, {count: 7})
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "codigo do banco" do
|
|
70
|
+
subject.codigo_banco.must_equal '237'
|
|
71
|
+
end
|
|
72
|
+
it '#codigo_banco_dv' do
|
|
73
|
+
subject.codigo_banco_dv.must_equal '2'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
describe "#nome_banco" do
|
|
77
|
+
it "valor padrão para o nome_banco" do
|
|
78
|
+
subject.nome_banco.must_equal 'BRADESCO'
|
|
79
|
+
end
|
|
80
|
+
it "deve ser possível mudar o valor do nome do banco" do
|
|
81
|
+
subject.nome_banco = 'MEU'
|
|
82
|
+
subject.nome_banco.must_equal 'MEU'
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "#versao_layout_arquivo_cnab_240" do
|
|
87
|
+
subject.versao_layout_arquivo_cnab_240.must_equal '084'
|
|
88
|
+
end
|
|
89
|
+
it "#versao_layout_lote_cnab_240" do
|
|
90
|
+
subject.versao_layout_lote_cnab_240.must_equal '042'
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe '#agencia_dv' do
|
|
94
|
+
it "deve ser personalizavel pelo usuario" do
|
|
95
|
+
subject.agencia_dv = 88
|
|
96
|
+
subject.agencia_dv.must_equal 88
|
|
97
|
+
end
|
|
98
|
+
it "se não passar valor deve calcular automatico" do
|
|
99
|
+
subject.agencia = '1234'
|
|
100
|
+
BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.expects(:new).with('1234').returns(stub(to_s: 5))
|
|
101
|
+
|
|
102
|
+
subject.agencia_dv.must_equal 5
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
describe '#conta_corrente_dv' do
|
|
107
|
+
it "deve ser personalizavel pelo usuario" do
|
|
108
|
+
subject.conta_corrente_dv = 88
|
|
109
|
+
subject.conta_corrente_dv.must_equal 88
|
|
110
|
+
end
|
|
111
|
+
it "se não passar valor deve calcular automatico" do
|
|
112
|
+
subject.conta_corrente_dv = nil
|
|
113
|
+
subject.conta_corrente = '6688'
|
|
114
|
+
BrBoleto::Calculos::Modulo11FatorDe2a7.expects(:new).with('0006688').returns(stub(to_s: 5))
|
|
115
|
+
|
|
116
|
+
subject.conta_corrente_dv.must_equal 5
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
describe "#get_especie_titulo" do
|
|
121
|
+
context "CÓDIGOS para o cnab 400 do Bradesco" do
|
|
122
|
+
it { subject.get_especie_titulo('07', 400).must_equal '10' } # Letra de Câmbio
|
|
123
|
+
it { subject.get_especie_titulo('17', 400).must_equal '05' } # Recibo
|
|
124
|
+
it { subject.get_especie_titulo('19', 400).must_equal '11' } # Nota de Débito
|
|
125
|
+
it { subject.get_especie_titulo('32', 400).must_equal '30' } # Boleto de Proposta
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
describe "#get_codigo_movimento_remessa" do
|
|
130
|
+
context "CÓDIGOS para o cnab 400 do Bradesco" do
|
|
131
|
+
it { subject.get_codigo_movimento_remessa('10', 400).must_equal '18' } # Sustar protesto e baixar Título
|
|
132
|
+
it { subject.get_codigo_movimento_remessa('11', 400).must_equal '19' } # Sustar protesto e manter em carteira
|
|
133
|
+
it { subject.get_codigo_movimento_remessa('31', 400).must_equal '22' } # Transferência Cessão Crédito
|
|
134
|
+
it { subject.get_codigo_movimento_remessa('33', 400).must_equal '68' } # Acerto nos dados do rateio de Crédito
|
|
135
|
+
it { subject.get_codigo_movimento_remessa('43', 400).must_equal '23' } # Transferência entre Carteiras
|
|
136
|
+
it { subject.get_codigo_movimento_remessa('45', 400).must_equal '45' } # Pedido de Negativação
|
|
137
|
+
it { subject.get_codigo_movimento_remessa('46', 400).must_equal '46' } # Excluir Negativação com baixa
|
|
138
|
+
it { subject.get_codigo_movimento_remessa('47', 400).must_equal '47' } # Excluir negativação e manter pendente
|
|
139
|
+
it { subject.get_codigo_movimento_remessa('34', 400).must_equal '69' } # Cancelamento do rateio de crédito.
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
@@ -8,17 +8,18 @@ describe BrBoleto::Conta::Caixa do
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
context "valores padrões" do
|
|
11
|
-
it "deve setar a carteira com 14'" do
|
|
11
|
+
it "deve setar a carteira da carteira com 14'" do
|
|
12
12
|
subject.class.new.carteira.must_equal '14'
|
|
13
|
-
end
|
|
13
|
+
end
|
|
14
14
|
it "deve setar a valid_carteira_required com true" do
|
|
15
15
|
subject.class.new.valid_carteira_required.must_equal true
|
|
16
16
|
end
|
|
17
17
|
it "deve setar a valid_carteira_length com 2" do
|
|
18
18
|
subject.class.new.valid_carteira_length.must_equal 2
|
|
19
19
|
end
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
|
|
21
|
+
it "deve setar a valid_carteira_inclusion com %w[14 24]" do
|
|
22
|
+
subject.class.new.valid_carteira_inclusion.must_equal %w[14 24]
|
|
22
23
|
end
|
|
23
24
|
it "deve setar a valid_convenio_maximum com 6" do
|
|
24
25
|
subject.class.new.valid_convenio_maximum.must_equal 6
|
|
@@ -43,7 +44,7 @@ describe BrBoleto::Conta::Caixa do
|
|
|
43
44
|
wont_be_message_error(:versao_aplicativo, :custom_length_maximum, {count: 4})
|
|
44
45
|
end
|
|
45
46
|
|
|
46
|
-
context 'Validações padrões da carteira' do
|
|
47
|
+
context 'Validações padrões da carteira da carteira' do
|
|
47
48
|
subject { BrBoleto::Conta::Caixa.new }
|
|
48
49
|
it { must validate_presence_of(:carteira) }
|
|
49
50
|
it 'Tamanho deve ser de 2' do
|
|
@@ -52,7 +53,7 @@ describe BrBoleto::Conta::Caixa do
|
|
|
52
53
|
end
|
|
53
54
|
it "valores aceitos" do
|
|
54
55
|
subject.carteira = '04'
|
|
55
|
-
must_be_message_error(:carteira, :custom_inclusion, {list: '
|
|
56
|
+
must_be_message_error(:carteira, :custom_inclusion, {list: '14, 24'})
|
|
56
57
|
end
|
|
57
58
|
end
|
|
58
59
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe BrBoleto::Conta::Cecred do
|
|
4
|
+
subject { FactoryGirl.build(:conta_cecred) }
|
|
5
|
+
|
|
6
|
+
it "deve herdar de Conta::Base" do
|
|
7
|
+
subject.class.superclass.must_equal BrBoleto::Conta::Base
|
|
8
|
+
end
|
|
9
|
+
context "valores padrões" do
|
|
10
|
+
it "deve setar a carteira com '1' " do
|
|
11
|
+
subject.class.new.carteira.must_equal '1'
|
|
12
|
+
end
|
|
13
|
+
it "deve setar a valid_agencia_length com 4 " do
|
|
14
|
+
subject.class.new.valid_agencia_length.must_equal 4
|
|
15
|
+
end
|
|
16
|
+
it "deve setar a valid_carteira_required com true " do
|
|
17
|
+
subject.class.new.valid_carteira_required.must_equal true
|
|
18
|
+
end
|
|
19
|
+
it "deve setar a valid_carteira_length com 1 " do
|
|
20
|
+
subject.class.new.valid_carteira_length.must_equal 1
|
|
21
|
+
end
|
|
22
|
+
it "deve setar a valid_conta_corrente_required com true " do
|
|
23
|
+
subject.class.new.valid_conta_corrente_required.must_equal true
|
|
24
|
+
end
|
|
25
|
+
it "deve setar a valid_conta_corrente_maximum com 7 " do
|
|
26
|
+
subject.class.new.valid_conta_corrente_maximum.must_equal 7
|
|
27
|
+
end
|
|
28
|
+
it "deve setar a valid_codigo_cedente_maximum com 6 " do
|
|
29
|
+
subject.class.new.valid_codigo_cedente_maximum.must_equal 6
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
describe "Validations" do
|
|
33
|
+
it { must validate_presence_of(:agencia) }
|
|
34
|
+
it { must validate_presence_of(:razao_social) }
|
|
35
|
+
it { must validate_presence_of(:cpf_cnpj) }
|
|
36
|
+
it do
|
|
37
|
+
subject.agencia_dv = 21
|
|
38
|
+
must_be_message_error(:agencia_dv, :custom_length_is, {count: 1})
|
|
39
|
+
end
|
|
40
|
+
context 'Validações padrões da carteira' do
|
|
41
|
+
subject { BrBoleto::Conta::Cecred.new }
|
|
42
|
+
it { must validate_presence_of(:carteira) }
|
|
43
|
+
it 'Tamanho deve ser de 1' do
|
|
44
|
+
subject.carteira = '132'
|
|
45
|
+
must_be_message_error(:carteira, :custom_length_is, {count: 1})
|
|
46
|
+
end
|
|
47
|
+
it "valores aceitos" do
|
|
48
|
+
subject.carteira = '9'
|
|
49
|
+
must_be_message_error(:carteira, :custom_inclusion, {list: '1'})
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
context 'Validações padrões da conta_corrente' do
|
|
53
|
+
subject { BrBoleto::Conta::Cecred.new }
|
|
54
|
+
it { must validate_presence_of(:conta_corrente) }
|
|
55
|
+
it 'Tamanho deve ter o tamanho maximo de 7' do
|
|
56
|
+
subject.conta_corrente = '12345678'
|
|
57
|
+
must_be_message_error(:conta_corrente, :custom_length_maximum, {count: 7})
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
context 'Validações padrões da codigo_cedente' do
|
|
61
|
+
subject { BrBoleto::Conta::Cecred.new }
|
|
62
|
+
it 'Tamanho deve ter o tamanho maximo de 6' do
|
|
63
|
+
subject.codigo_cedente = '12345678'
|
|
64
|
+
must_be_message_error(:convenio, :custom_length_maximum, {count: 6})
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "codigo do banco" do
|
|
70
|
+
subject.codigo_banco.must_equal '085'
|
|
71
|
+
end
|
|
72
|
+
it '#codigo_banco_dv' do
|
|
73
|
+
subject.codigo_banco_dv.must_equal '1'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
describe "#nome_banco" do
|
|
77
|
+
it "valor padrão para o nome_banco" do
|
|
78
|
+
subject.nome_banco.must_equal 'CECRED'
|
|
79
|
+
end
|
|
80
|
+
it "deve ser possível mudar o valor do nome do banco" do
|
|
81
|
+
subject.nome_banco = 'MEU'
|
|
82
|
+
subject.nome_banco.must_equal 'MEU'
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it "#versao_layout_arquivo_cnab_240" do
|
|
87
|
+
subject.versao_layout_arquivo_cnab_240.must_equal '087'
|
|
88
|
+
end
|
|
89
|
+
it "#versao_layout_lote_cnab_240" do
|
|
90
|
+
subject.versao_layout_lote_cnab_240.must_equal '045'
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe '#agencia_dv' do
|
|
94
|
+
it "deve ser personalizavel pelo usuario" do
|
|
95
|
+
subject.agencia_dv = 88
|
|
96
|
+
subject.agencia_dv.must_equal 88
|
|
97
|
+
end
|
|
98
|
+
it "se não passar valor deve calcular automatico" do
|
|
99
|
+
subject.agencia = '1234'
|
|
100
|
+
BrBoleto::Calculos::Modulo11FatorDe2a9.expects(:new).with('1234').returns(stub(to_s: 5))
|
|
101
|
+
|
|
102
|
+
subject.agencia_dv.must_equal 5
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
describe '#conta_corrente_dv' do
|
|
107
|
+
it "deve ser personalizavel pelo usuario" do
|
|
108
|
+
subject.conta_corrente_dv = 88
|
|
109
|
+
subject.conta_corrente_dv.must_equal 88
|
|
110
|
+
end
|
|
111
|
+
it "se não passar valor deve calcular automatico" do
|
|
112
|
+
subject.conta_corrente_dv = nil
|
|
113
|
+
subject.conta_corrente = '6688'
|
|
114
|
+
BrBoleto::Calculos::Modulo11FatorDe2a9.expects(:new).with('0006688').returns(stub(to_s: 5))
|
|
115
|
+
|
|
116
|
+
subject.conta_corrente_dv.must_equal 5
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|