diff --git a/src/jsx.erl b/src/jsx.erl index 2534540..bccf7c6 100644 --- a/src/jsx.erl +++ b/src/jsx.erl @@ -34,9 +34,8 @@ -export_type([json_term/0, json_text/0]). -%% test handler -ifdef(TEST). --export([init/1, handle_event/2]). +-include("jsx_tests.hrl"). -endif. @@ -151,19 +150,4 @@ encoder(Handler, State, Opts) -> jsx_encoder:encoder(Handler, State, Opts). -spec parser(Handler::module(), State::any(), Opts::list()) -> parser(). -parser(Handler, State, Opts) -> jsx_parser:parser(Handler, State, Opts). - - - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). - - -%% stub test handler -init([]) -> []. - -handle_event(end_json, State) -> lists:reverse([end_json] ++ State); -handle_event(Event, State) -> [Event] ++ State. - - --endif. +parser(Handler, State, Opts) -> jsx_parser:parser(Handler, State, Opts). \ No newline at end of file diff --git a/src/jsx_tests.hrl b/src/jsx_tests.hrl new file mode 100644 index 0000000..24fc814 --- /dev/null +++ b/src/jsx_tests.hrl @@ -0,0 +1,17 @@ +%% data and helper functions for tests + +-export([init/1, handle_event/2]). +-export([empty_array/0, empty_object/0]). + +-include_lib("eunit/include/eunit.hrl"). + + +%% test handler +init([]) -> []. + +handle_event(end_json, State) -> lists:reverse([end_json] ++ State); +handle_event(Event, State) -> [Event] ++ State. + + +empty_array() -> [{"empty array", <<"[]">>, [], [start_array, end_array, end_json]}]. +empty_object() -> [{"empty object", <<"{}">>, [{}], [start_object, end_object, end_json]}]. \ No newline at end of file diff --git a/src/jsx_verify.erl b/src/jsx_verify.erl index 93388b1..b9c2959 100644 --- a/src/jsx_verify.erl +++ b/src/jsx_verify.erl @@ -114,4 +114,16 @@ opts_test_() -> ]. +valid_json_test_() -> + Data = jsx:empty_array() + ++ jsx:empty_object(), + [ {Title, ?_assertEqual(true, is_json(JSON, []))} || {Title, JSON, _, _} <- Data ]. + + +valid_term_test_() -> + Data = jsx:empty_array() + ++ jsx:empty_object(), + [ {Title, ?_assertEqual(true, is_term(Term, []))} || {Title, _, Term, _} <- Data ]. + + -endif. \ No newline at end of file