cnpj_test.rb 1.69 KB

require File.dirname(__FILE__) + '/abstract_unit'
require '../lib/validates_as_cnpj'

# Modelo
class CNPJData < ActiveRecord::Base
  set_table_name "cnpjs"

  validates_as_cnpj :cnpj
end

# Testes
class CNPJsTest < Test::Unit::TestCase
  def test_aceita_cnpj_nulo_por_que_deve_ser_barrado_por_validates_presence_of
    cnpj_valido = CNPJData.new(:id => 1, :cnpj => nil)

    assert cnpj_valido.save, "Nao salvou CNPJ nulo."
  end
  
  def test_aceita_cnpj_vazio_por_que_deve_ser_barrado_por_validates_presence_of
    cnpj_valido = CNPJData.new(:id => 1, :cnpj => "")

    assert cnpj_valido.save, "Nao salvou CNPJ vazio."
  end
  
  def test_cnpj_incompleto
    cnpj_invalido = CNPJData.new(:id => 1, :cnpj => "123")

    assert ( not cnpj_invalido.save ), "Salvou CNPJ incompleto."
  end
  
  def test_cnpj_invalido_sem_pontuacao
    cnpj_invalido = CNPJData.new(:id => 1, :cnpj => "00000000000000")

    assert ( not cnpj_invalido.save ), "Salvou CNPJ invalido."
  end
  
  def test_cnpj_valido_sem_pontuacao
    cnpj_valido = CNPJData.new(:id => 1, :cnpj => "04613251000100")

    assert cnpj_valido.save, "Nao salvou CNPJ valido."
  end
  
  def test_cnpj_invalido_sem_pontuacao_com_digitos_verificadores_invertidos
    cnpj_invalido = CNPJData.new(:id => 1, :cnpj => "10002574000125")

    assert ( not cnpj_invalido.save ), "Salvou CNPJ invalido."
  end
  
  def test_cnpj_invalido_com_pontuacao
    cnpj_invalido = CNPJData.new(:id => 1, :cnpj => "51.357.999/1110-98")

    assert ( not cnpj_invalido.save ), "CNPJ invalido foi salvo."
  end

  def test_cnpj_valido_com_pontuacao
    cnpj_valido = CNPJData.new(:id => 1, :cnpj => "94.132.024/0001-48")

    assert ( cnpj_valido.save ), "CNPJ valido nao foi salvo."
  end
end