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