% This file is part of Jiffy released under the MIT license.
|
|
% See the LICENSE file for more information.
|
|
|
|
-module(jiffy_01_yajl_tests).
|
|
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
-include("jiffy_util.hrl").
|
|
|
|
|
|
yajl_test_() ->
|
|
Cases = read_cases(),
|
|
[gen(Case) || Case <- Cases].
|
|
|
|
|
|
gen({Name, Json, {error, Erl}}) ->
|
|
{Name, ?_assertError(Erl, jiffy:decode(Json))};
|
|
gen({Name, Json, Erl}) ->
|
|
{Name, ?_assertEqual(Erl, jiffy:decode(Json))}.
|
|
|
|
|
|
read_cases() ->
|
|
CasesPath = cases_path("*.json"),
|
|
FileNames = lists:sort(filelib:wildcard(CasesPath)),
|
|
lists:map(fun(F) -> make_pair(F) end, FileNames).
|
|
|
|
|
|
make_pair(FileName) ->
|
|
{ok, Json} = file:read_file(FileName),
|
|
BaseName = filename:rootname(FileName),
|
|
ErlFname = BaseName ++ ".eterm",
|
|
{ok, [Term]} = file:consult(ErlFname),
|
|
{filename:basename(BaseName), Json, Term}.
|