diff --git a/test/mmynapi_decode_tests.erl b/test/mmynapi_decode_tests.erl index daced31..5fe7b1a 100644 --- a/test/mmynapi_decode_tests.erl +++ b/test/mmynapi_decode_tests.erl @@ -11,6 +11,37 @@ decode_header_test_() -> {<<"vsn">>, [2,0,1]}, {<<"type">>, <<"req.sendsms">>}, {<<"system">>, <<"mmyn">>}, - {<<"transaction_id">>, <<"0xdeadbeef">>}]}))} - ]. + {<<"transaction_id">>, <<"0xdeadbeef">>}]}))}, + {"Error out when header JSON form is missing a 'vsn' field", + ?_assertEqual({error, no_version}, + mmynapi_decode:to_header({[ + {<<"type">>, <<"req.sendsms">>}, + {<<"system">>, <<"mmyn">>}, + {<<"transaction_id">>, <<"0xdeadbeef">>}]}))}, + {"Error out when header 'vsn' field is wrong", + ?_assertEqual({error, {wrong_msg_vsn, [{current_msg_vsn, [2,0,1]}, {parsed_msg_vsn,[3,2,1]}]}}, + mmynapi_decode:to_header({[ + {<<"type">>, <<"req.sendsms">>}, + {<<"vsn">>, [3,2,1]}, + {<<"system">>, <<"mmyn">>}, + {<<"transaction_id">>, <<"0xdeadbeef">>}]}))}, + {"Error out when header JSON form is missing a 'type' field", + ?_assertEqual({error, no_type}, + mmynapi_decode:to_header({[ + {<<"vsn">>, [2,0,1]}, + {<<"system">>, <<"mmyn">>}, + {<<"transaction_id">>, <<"0xdeadbeef">>}]}))}, + {"Error out when header JSON form is missing a 'system' field", + ?_assertEqual({error, no_system}, + mmynapi_decode:to_header({[ + {<<"vsn">>, [2,0,1]}, + {<<"type">>, <<"res.sendsms">>}, + {<<"transaction_id">>, <<"0xdeadbeef">>}]}))}, + {"Error out when header JSON form is missing a 'transaction_id' field", + ?_assertEqual({error, no_transaction_id}, + mmynapi_decode:to_header({[ + {<<"vsn">>, [2,0,1]}, + {<<"system">>, <<"mmyn">>}, + {<<"type">>, <<"res.sendsms">>}]}))} + ].