summaryrefslogtreecommitdiff
path: root/lib/elixir/test/elixir/record_test.exs
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2014-04-10 12:56:59 +0200
committerJosé Valim <jose.valim@plataformatec.com.br>2014-04-10 12:56:59 +0200
commit21b1e519098d038e655f9bc2d04e2846f9c59f41 (patch)
tree2f625e572dcf0b8b0a2c2942013701f37d1d389f /lib/elixir/test/elixir/record_test.exs
parent9e96966622124d92273e206d3b5c2f5fdb541251 (diff)
downloadelixir-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.exs43
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