mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
Add JSON EUnit testing
This commit is contained in:
parent
9b675fe775
commit
992d84c002
72
test/json_test.erl
Normal file
72
test/json_test.erl
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
-module(json_test).
|
||||||
|
|
||||||
|
-compile(export_all).
|
||||||
|
|
||||||
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
|
|
||||||
|
%% @format-begin
|
||||||
|
|
||||||
|
encode_binary_test() ->
|
||||||
|
Binary = <<"This is an error text.">>,
|
||||||
|
Encoded = <<"\"This is an error text.\"">>,
|
||||||
|
?assertMatch(Encoded, misc:json_encode(Binary)).
|
||||||
|
|
||||||
|
-ifdef(OTP_BELOW_27).
|
||||||
|
-ifdef(OTP_BELOW_26).
|
||||||
|
|
||||||
|
%% OTP 25 or lower
|
||||||
|
encode_map_test() ->
|
||||||
|
Map = #{name => <<"room">>,
|
||||||
|
service => <<"conference">>,
|
||||||
|
jid => jid:encode({<<"user">>, <<"server">>, <<"">>}),
|
||||||
|
affiliation => member},
|
||||||
|
Encoded =
|
||||||
|
<<"{\"service\":\"conference\",\"name\":\"room\",\"jid\":\"user@server\",\"affiliation\":\"member\"}">>,
|
||||||
|
?assertMatch(Encoded, misc:json_encode(Map)).
|
||||||
|
|
||||||
|
-else.
|
||||||
|
|
||||||
|
%% OTP 26
|
||||||
|
encode_map_test() ->
|
||||||
|
Map = #{name => <<"room">>,
|
||||||
|
service => <<"conference">>,
|
||||||
|
jid => jid:encode({<<"user">>, <<"server">>, <<"">>}),
|
||||||
|
affiliation => member},
|
||||||
|
Encoded =
|
||||||
|
<<"{\"affiliation\":\"member\",\"jid\":\"user@server\",\"service\":\"conference\",\"name\":\"room\"}">>,
|
||||||
|
?assertMatch(Encoded, misc:json_encode(Map)).
|
||||||
|
|
||||||
|
-endif.
|
||||||
|
|
||||||
|
-else.
|
||||||
|
|
||||||
|
%% OTP 27 or higher or higher
|
||||||
|
encode_map_test() ->
|
||||||
|
Map = #{name => <<"room">>,
|
||||||
|
service => <<"conference">>,
|
||||||
|
jid => jid:encode({<<"user">>, <<"server">>, <<"">>}),
|
||||||
|
affiliation => member},
|
||||||
|
Encoded27 =
|
||||||
|
<<"{\"name\":\"room\",\"service\":\"conference\",\"jid\":\"user@server\",\"affiliation\":\"member\"}">>,
|
||||||
|
?assertMatch(Encoded27, misc:json_encode(Map)).
|
||||||
|
|
||||||
|
-endif.
|
||||||
|
|
||||||
|
decode_test() ->
|
||||||
|
Encoded =
|
||||||
|
<<"{\"affiliation\":\"member\",\"jid\":\"user@server\",\"service\":\"conference\",\"name\":\"room\"}">>,
|
||||||
|
TupleList =
|
||||||
|
#{<<"affiliation">> => <<"member">>,
|
||||||
|
<<"jid">> => <<"user@server">>,
|
||||||
|
<<"name">> => <<"room">>,
|
||||||
|
<<"service">> => <<"conference">>},
|
||||||
|
?assertMatch(TupleList, misc:json_decode(Encoded)).
|
||||||
|
|
||||||
|
decode_maps_test() ->
|
||||||
|
Encoded =
|
||||||
|
<<"{\"affiliation\":\"member\",\"jid\":\"user@server\",\"service\":\"conference\",\"name\":\"room\"}">>,
|
||||||
|
Map = #{<<"affiliation">> => misc:atom_to_binary(member),
|
||||||
|
<<"jid">> => jid:encode({<<"user">>, <<"server">>, <<"">>}),
|
||||||
|
<<"name">> => <<"room">>,
|
||||||
|
<<"service">> => <<"conference">>},
|
||||||
|
?assertMatch(Map, misc:json_decode(Encoded)).
|
Loading…
Reference in New Issue
Block a user