diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2014-04-10 12:56:59 +0200 |
---|---|---|
committer | José Valim <jose.valim@plataformatec.com.br> | 2014-04-10 12:56:59 +0200 |
commit | 21b1e519098d038e655f9bc2d04e2846f9c59f41 (patch) | |
tree | 2f625e572dcf0b8b0a2c2942013701f37d1d389f /lib/elixir/test/elixir/record_test.exs | |
parent | 9e96966622124d92273e206d3b5c2f5fdb541251 (diff) | |
download | elixir-21b1e519098d038e655f9bc2d04e2846f9c59f41.tar.gz |
Start new records API
Diffstat (limited to 'lib/elixir/test/elixir/record_test.exs')
-rw-r--r-- | lib/elixir/test/elixir/record_test.exs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/elixir/test/elixir/record_test.exs b/lib/elixir/test/elixir/record_test.exs new file mode 100644 index 000000000..046ec21ae --- /dev/null +++ b/lib/elixir/test/elixir/record_test.exs @@ -0,0 +1,43 @@ +Code.require_file "test_helper.exs", __DIR__ + +defmodule RecordTest do + use ExUnit.Case, async: true + + require Record + + test "extract/2 extracts information from an Erlang file" do + assert Record.extract(:file_info, from_lib: "kernel/include/file.hrl") == + [size: :undefined, type: :undefined, access: :undefined, atime: :undefined, + mtime: :undefined, ctime: :undefined, mode: :undefined, links: :undefined, + major_device: :undefined, minor_device: :undefined, inode: :undefined, + uid: :undefined, gid: :undefined] + end + + test "extract/2 handles nested records too" do + namespace = Record.extract(:xmlElement, from_lib: "xmerl/include/xmerl.hrl")[:namespace] + assert is_tuple(namespace) + assert elem(namespace, 0) == :xmlNamespace + end + + # We need indirection to avoid warnings + defp record?(data, kind) do + Record.record?(data, kind) + end + + test "record?/2" do + assert record?({ User, "jose", 27 }, User) + refute record?({ User, "jose", 27 }, Author) + refute record?(13, Author) + end + + # We need indirection to avoid warnings + defp record?(data) do + Record.record?(data) + end + + test "record?/1" do + assert record?({ User, "jose", 27 }) + refute record?({ "jose", 27 }) + refute record?(13) + end +end |