spec/brcobranca/remessa/pagamento_spec.rb in brcobranca-8.0.0 vs spec/brcobranca/remessa/pagamento_spec.rb in brcobranca-9.0.0

- old
+ new

@@ -1,22 +1,20 @@ # -*- encoding: utf-8 -*- -# - require 'spec_helper' RSpec.describe Brcobranca::Remessa::Pagamento do let(:pagamento) do subject.class.new(valor: 199.9, - data_vencimento: Date.parse('2015-06-25'), - nosso_numero: 123, - documento_sacado: '12345678901', - nome_sacado: 'PABLO DIEGO JOSÉ FRANCISCO DE PAULA JUAN NEPOMUCENO MARÍA DE LOS REMEDIOS CIPRIANO DE LA SANTÍSSIMA TRINIDAD RUIZ Y PICASSO', - endereco_sacado: 'RUA RIO GRANDE DO SUL São paulo Minas caçapa da silva junior', - bairro_sacado: 'São josé dos quatro apostolos magros', - cep_sacado: '12345678', - cidade_sacado: 'Santa rita de cássia maria da silva', - uf_sacado: 'SP') + data_vencimento: Date.parse('2015-06-25'), + nosso_numero: 123, + documento_sacado: '12345678901', + nome_sacado: 'PABLO DIEGO JOSÉ FRANCISCO DE PAULA JUAN NEPOMUCENO MARÍA DE LOS REMEDIOS CIPRIANO DE LA SANTÍSSIMA TRINIDAD RUIZ Y PICASSO', + endereco_sacado: 'RUA RIO GRANDE DO SUL São paulo Minas caçapa da silva junior', + bairro_sacado: 'São josé dos quatro apostolos magros', + cep_sacado: '12345678', + cidade_sacado: 'Santa rita de cássia maria da silva', + uf_sacado: 'SP') end context 'validacoes' do it 'deve ser invalido se nao possuir nosso numero' do pagamento.nosso_numero = nil @@ -58,22 +56,14 @@ pagamento.cidade_sacado = nil expect(pagamento.invalid?).to be true expect(pagamento.errors.full_messages).to include('Cidade sacado não pode estar em branco.') end - context '@uf_sacado' do - it 'deve ser invalido se nao possuir UF do sacado' do - pagamento.uf_sacado = nil - expect(pagamento.invalid?).to be true - expect(pagamento.errors.full_messages).to include('Uf sacado não pode estar em branco.') - end - - it 'deve ser invalido se UF do sacado for maior que 2 caracteres' do - pagamento.uf_sacado = 'Santa Catarina' - expect(pagamento.invalid?).to be true - expect(pagamento.errors.full_messages).to include('Uf sacado deve ter 2 dígitos.') - end + it 'deve ser invalido se nao possuir UF do sacado' do + pagamento.uf_sacado = nil + expect(pagamento.invalid?).to be true + expect(pagamento.errors.full_messages).to include('Uf sacado não pode estar em branco.') end context '@cep' do it 'deve ser invalido se nao possuir CEP' do pagamento.cep_sacado = nil @@ -117,14 +107,10 @@ end it 'valor do abatimento padrao deve ser zero' do expect(pagamento.valor_abatimento).to eq 0.0 end - - it 'numero da parcela deve ser 01' do - expect(pagamento.parcela).to eq '01' - end end context 'formatacoes dos valores' do context 'formata data do desconto' do it 'formata data limite do desconto de acordo com o formato passado' do @@ -174,9 +160,41 @@ # padrao com 13 posicoes pagamento.valor_abatimento = 34.9 expect(pagamento.formata_valor_abatimento).to eq '0000000003490' # formata com o numero passado expect(pagamento.formata_valor_abatimento(10)).to eq '0000003490' + end + + it 'formata valor dos juros com o numero de posicoes passadas' do + # padrao com 13 posicoes + pagamento.valor_mora = 49.2 + expect(pagamento.formata_valor_mora).to eq '0000000004920' + # formata com o tamanho passado + expect(pagamento.formata_valor_mora(15)).to eq '000000000004920' + end + + context 'formata valor do campo documento' do + before { pagamento.documento = '2345' } + + it "deve formatar assumindo os valores padrao para os parametros tamanho e caracter" do + expect(pagamento.formata_documento_ou_numero).to eql '2345'.rjust(25, ' ') + end + + it "deve formatar com os parametros tamanho e caracter" do + expect(pagamento.formata_documento_ou_numero(15, '0')).to eql '2345'.rjust(15, '0') + end + + it "deve extrair somente o valor do campo no tamanho informado" do + pagamento.documento = '12345678901234567890' + expect(pagamento.formata_documento_ou_numero(15, '0')).to eql '123456789012345' + expect(pagamento.formata_documento_ou_numero(15, '0').length).to eql 15 + end + + it 'deve remover caracteres especiais ou acentuação' do + pagamento.documento = 'JOÃO DEve R$ 900.00' + expect(pagamento.formata_documento_ou_numero).to eql ' JOO DEve R 90000' + expect(pagamento.formata_documento_ou_numero.length).to eql 25 + end end context 'identificacao sacado' do it 'verifica a identificacao do sacado (pessoa fisica ou juridica)' do # pessoa fisica