Current section
Files
Jump to
Current section
Files
test/phone_test.exs
defmodule PhoneTest do
use ExUnit.Case, async: true
doctest Phone
@right_assertion {:ok, %{
a2: "BR",
a3: "BRA",
country: "Brazil",
international_code: "55",
area_code: "51",
number: "12345678"
}}
@wrong_type {:error, "Not a valid parameter, only string or integer."}
@wrong_assertion {:error, "Not a valid phone number."}
test "parse integer" do
assert Phone.parse(555112345678) == @right_assertion
end
test "parse not valid integer" do
assert Phone.parse(5532) == @wrong_assertion
end
test "parse string with letters" do
assert Phone.parse("abc") == @wrong_assertion
end
test "parse string with numbers and letters" do
assert Phone.parse("555112345678abc") == @wrong_assertion
end
test "parse string with formatted number" do
assert Phone.parse("+55 51 1234 5678") == @right_assertion
assert Phone.parse("+55(51)1234-5678") == @right_assertion
assert Phone.parse("+555112345678") == @right_assertion
end
test "parse other types" do
assert Phone.parse(:test) == @wrong_type
assert Phone.parse({55,51,1234,5678}) == @wrong_type
assert Phone.parse([62,51,1234,5678]) == @wrong_type
assert Phone.parse(fn(t)-> t end) == @wrong_type
end
end