rewrite from lager
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

47 linhas
1.5 KiB

4 anos atrás
  1. -module(pr_composite_test).
  2. -compile([{parse_transform, lager_transform}]).
  3. -record(a, {field1 :: term(), field2 :: term()}).
  4. -record(b, {field1 :: term() , field2 :: term()}).
  5. -include_lib("eunit/include/eunit.hrl").
  6. nested_record_test() ->
  7. A = #a{field1 = x, field2 = y},
  8. B = #b{field1 = A, field2 = {}},
  9. Pr_B = lager:pr(B, ?MODULE),
  10. ?assertEqual({'$lager_record', b,
  11. [{field1, {'$lager_record', a,
  12. [{field1, x},{field2, y}]}},
  13. {field2, {}}]},
  14. Pr_B).
  15. list_field_test() ->
  16. As = [#a{field1 = 1, field2 = a2},
  17. #a{field1 = 2, field2 = a2}],
  18. B = #b{field1 = As, field2 = b2},
  19. Pr_B = lager:pr(B, ?MODULE),
  20. ?assertEqual({'$lager_record', b,
  21. [{field1, [{'$lager_record', a,
  22. [{field1, 1},{field2, a2}]},
  23. {'$lager_record', a,
  24. [{field1, 2},{field2, a2}]}]},
  25. {field2, b2}]},
  26. Pr_B).
  27. list_of_records_test() ->
  28. As = [#a{field1 = 1, field2 = a2},
  29. #a{field1 = 2, field2 = a2}],
  30. Pr_As = lager:pr(As, ?MODULE),
  31. ?assertEqual([{'$lager_record', a, [{field1, 1},{field2, a2}]},
  32. {'$lager_record', a, [{field1, 2},{field2, a2}]}],
  33. Pr_As).
  34. improper_list_test() ->
  35. A = #a{field1 = [1|2], field2 = a2},
  36. Pr_A = lager:pr(A, ?MODULE),
  37. ?assertEqual({'$lager_record',a,
  38. [{field1,[1|2]},{field2,a2}]},
  39. Pr_A).