defmodule CpfTest do use ExUnit.Case test "should be invalid with malformed number" do cpfs = ~w{345.65.67.3 567.765-87698 345456-654-01 123456} Enum.each(cpfs, fn(cpf) -> assert Brcpfcnpj.cpf_valid?(%Cpf{number: cpf}) ==false end ) end test "should be invalid with invalid number" do cpfs = ~w{23342345699 34.543.567-98 456.676456-87 333333333-33 00000000000 000.000.000-00} Enum.each(cpfs, fn(cpf) -> assert Brcpfcnpj.cpf_valid?(%Cpf{number: cpf}) ==false end ) end test "should be valid with correct number" do cpfs = ~w{111.444.777-35 11144477735 111.444777-35 111444.777-35 111.444.77735} Enum.each(cpfs, fn(cpf) -> assert Brcpfcnpj.cpf_valid?(%Cpf{number: cpf}) ==true end ) end test "should be invalid with a number longer than 11 chars, even if the first 11 char represent a valid cpf number" do cpfs = ~w{111.444.777-3500 11144477735AB} Enum.each(cpfs, fn(cpf) -> assert Brcpfcnpj.cpf_valid?(%Cpf{number: cpf}) ==false end ) end end