Sha256: 54a7b6e2d9aa3d92d607fa1e1faf5e94a01c2c92c41026ab3f9e592e40058130

Contents?: true

Size: 1.62 KB

Versions: 1

Compression:

Stored size: 1.62 KB

Contents

require 'spec_helper'

describe BrDocuments::CnpjCpf::Cpf do
  describe '#formatted' do
    it 'returns a formatted number' do
      cpf = BrDocuments::CnpjCpf::Cpf.new('11144477735')
      expect(cpf.formatted).to eq '111.444.777-35'
    end

    context 'when is invalid' do
      it 'returns an empty string' do
        cpf = BrDocuments::CnpjCpf::Cpf.new('123')
        expect(cpf.formatted).to eq ''
      end
    end
  end

  it 'is invalid with malformed number' do
    ['111.126.491.07', '482.261.15-663', '111444.777-35'].each do |number|
      cpf = BrDocuments::CnpjCpf::Cpf.new(number)
      expect(cpf).to_not be_valid
    end
  end

  it 'is invalid with a number longer than 11' do
    ['045.769.421-150', '308514217766'].each do |number|
      cpf = BrDocuments::CnpjCpf::Cpf.new(number)
      expect(cpf).to_not be_valid
    end
  end

  it 'is invalid with a number shorter than 11' do
    ['111.444.777-3', '1234567890'].each do |number|
      cpf = BrDocuments::CnpjCpf::Cpf.new(number)
      expect(cpf).to_not be_valid
    end
  end

  it 'is invalid with a sequence of the same number' do
    ['111.111.111-11', '22222222222'].each do |number|
      cpf = BrDocuments::CnpjCpf::Cpf.new(number)
      expect(cpf).to_not be_valid
    end
  end

  it 'is invalid with invalid check number' do
    ['111.111.111-22', '2222222233'].each do |number|
      cpf = BrDocuments::CnpjCpf::Cpf.new(number)
      expect(cpf).to_not be_valid
    end
  end

  it 'is valid with correct number' do
    ['111.444.777-35', '01233254120'].each do |number|
      cpf = BrDocuments::CnpjCpf::Cpf.new(number)
      expect(cpf).to be_valid
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
br_documents-0.2.0 spec/cnpj_cpf/cpf_spec.rb