first tentative steps towards more comprehensive and flexible test suite
This commit is contained in:
parent
51cafcfb64
commit
ba42f75780
3 changed files with 31 additions and 18 deletions
18
src/jsx.erl
18
src/jsx.erl
|
@ -34,9 +34,8 @@
|
||||||
|
|
||||||
-export_type([json_term/0, json_text/0]).
|
-export_type([json_term/0, json_text/0]).
|
||||||
|
|
||||||
%% test handler
|
|
||||||
-ifdef(TEST).
|
-ifdef(TEST).
|
||||||
-export([init/1, handle_event/2]).
|
-include("jsx_tests.hrl").
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
|
|
||||||
|
@ -152,18 +151,3 @@ encoder(Handler, State, Opts) -> jsx_encoder:encoder(Handler, State, Opts).
|
||||||
-spec parser(Handler::module(), State::any(), Opts::list()) -> parser().
|
-spec parser(Handler::module(), State::any(), Opts::list()) -> parser().
|
||||||
|
|
||||||
parser(Handler, State, Opts) -> jsx_parser:parser(Handler, State, Opts).
|
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.
|
|
||||||
|
|
17
src/jsx_tests.hrl
Normal file
17
src/jsx_tests.hrl
Normal file
|
@ -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]}].
|
|
@ -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.
|
-endif.
|
Loading…
Add table
Add a link
Reference in a new issue