rewrite from lager
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 

47 行
1.3 KiB

-module(pr_composite_test).
-compile([{parse_transform, lager_transform}]).
-record(a, {field1 :: term(), field2 :: term()}).
-record(b, {field1 :: term(), field2 :: term()}).
-include_lib("eunit/include/eunit.hrl").
nested_record_test() ->
A = #a{field1 = x, field2 = y},
B = #b{field1 = A, field2 = {}},
Pr_B = eRum:pr(B, ?MODULE),
?assertEqual({'$lager_record', b,
[{field1, {'$lager_record', a,
[{field1, x}, {field2, y}]}},
{field2, {}}]},
Pr_B).
list_field_test() ->
As = [#a{field1 = 1, field2 = a2},
#a{field1 = 2, field2 = a2}],
B = #b{field1 = As, field2 = b2},
Pr_B = eRum:pr(B, ?MODULE),
?assertEqual({'$lager_record', b,
[{field1, [{'$lager_record', a,
[{field1, 1}, {field2, a2}]},
{'$lager_record', a,
[{field1, 2}, {field2, a2}]}]},
{field2, b2}]},
Pr_B).
list_of_records_test() ->
As = [#a{field1 = 1, field2 = a2},
#a{field1 = 2, field2 = a2}],
Pr_As = eRum:pr(As, ?MODULE),
?assertEqual([{'$lager_record', a, [{field1, 1}, {field2, a2}]},
{'$lager_record', a, [{field1, 2}, {field2, a2}]}],
Pr_As).
improper_list_test() ->
A = #a{field1 = [1 | 2], field2 = a2},
Pr_A = eRum:pr(A, ?MODULE),
?assertEqual({'$lager_record', a,
[{field1, [1 | 2]}, {field2, a2}]},
Pr_A).