Skip to content

Commit 74cffa3

Browse files
committed
add some tests
1 parent a2ca1d4 commit 74cffa3

2 files changed

Lines changed: 36 additions & 2 deletions

File tree

src/msgpack_packer.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ pack(Other, Opt) ->
8585

8686
-ifdef(without_map).
8787

88+
%% TODO: maybe we don't need this inside ifdef
89+
%% as to use ?OPTION{enable_str=boolean()}
8890
handle_binary(Bin, Opt) ->
8991
case Opt of
9092
#options_v2{enable_str=true} = Opt -> pack_raw2(Bin);

test/msgpack_test.erl

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ issue_27_test_() ->
148148
[?_assertEqual({ok, null},
149149
msgpack:unpack(msgpack:pack(nil), [{format,jsx}])),
150150
?_assertEqual({ok, nil},
151-
msgpack:unpack(msgpack:pack(null, [{format,jsx}]))),
151+
msgpack:unpack(msgpack:pack(nil, [{format,jiffy}]))),
152152
?_assertEqual({ok, <<"null">>},
153153
msgpack:unpack(msgpack:pack(null, [{allow_atom,pack}]))),
154154
?_assertEqual({ok, <<"nil">>},
@@ -199,9 +199,41 @@ array_test_()->
199199
end}
200200
].
201201

202+
-ifndef(without_map).
202203
map_test_()->
203204
[
204-
{"jiffy length 16",
205+
{"maps <=> jsx",
206+
fun() ->
207+
JSXMap = [ {X, X * 2} || X <- lists:seq(0, 16) ],
208+
BinaryJSX = pack(JSXMap, [{format,jsx}]),
209+
Map = maps:from_list(JSXMap),
210+
Binary = pack(Map, [{format,map}]),
211+
?assertEqual(BinaryJSX, Binary)
212+
end},
213+
214+
{"map length 16",
215+
fun() ->
216+
Map = maps:from_list([ {X, X * 2} || X <- lists:seq(0, 16) ]),
217+
Binary = pack(Map, [{format,map}]),
218+
?assertEqual({ok, Map}, unpack(Binary, [{format,map}]))
219+
end},
220+
{"map length 32",
221+
fun() ->
222+
Map = maps:from_list([ {X, X * 2} || X <- lists:seq(0, 16#010000) ]),
223+
Binary = pack(Map, [{format,map}]),
224+
?assertEqual({ok, Map}, unpack(Binary, [{format,map}]))
225+
end},
226+
{"map empty",
227+
fun() ->
228+
EmptyMap = maps:new(),
229+
Binary = pack(EmptyMap, [{format,map}]),
230+
?assertEqual({ok, EmptyMap}, unpack(Binary, [{format,map}]))
231+
end}].
232+
-endif.
233+
234+
235+
jiffy_jsx_test_() ->
236+
[{"jiffy length 16",
205237
fun() ->
206238
Map = {[ {X, X * 2} || X <- lists:seq(0, 16) ]},
207239
Binary = pack(Map, [{format,jiffy}]),

0 commit comments

Comments
 (0)