fix(emqx_exhook): improve test coverage of the emqx_exhook
This commit is contained in:
parent
1d832c3026
commit
2327302c28
|
@ -178,6 +178,60 @@ t_metrics(_) ->
|
|||
?assertMatch(#{'client.connect' := #{succeed := _}}, HooksMetrics),
|
||||
ok.
|
||||
|
||||
t_handler(_) ->
|
||||
%% connect
|
||||
{ok, C} = emqtt:start_link([{host, "localhost"},
|
||||
{port, 1883},
|
||||
{username, <<"gooduser">>},
|
||||
{clientid, <<"exhook_gooduser">>}]),
|
||||
{ok, _} = emqtt:connect(C),
|
||||
|
||||
%% pub/sub
|
||||
{ok, _, _} = emqtt:subscribe(C, <<"/exhook">>, qos0),
|
||||
timer:sleep(100),
|
||||
ok = emqtt:publish(C, <<"/exhook">>, <<>>, qos0),
|
||||
ok = emqtt:publish(C, <<"/ignore">>, <<>>, qos0),
|
||||
timer:sleep(100),
|
||||
{ok, _, _} = emqtt:unsubscribe(C, <<"/exhook">>),
|
||||
|
||||
%% sys pub/sub
|
||||
ok = emqtt:publish(C, <<"$SYS">>, <<>>, qos0),
|
||||
{ok, _, _} = emqtt:subscribe(C, <<"$SYS/systest">>, qos1),
|
||||
timer:sleep(100),
|
||||
{ok, _} = emqtt:publish(C, <<"$SYS/systest">>, <<>>, qos1),
|
||||
ok = emqtt:publish(C, <<"$SYS/ignore">>, <<>>, qos0),
|
||||
timer:sleep(100),
|
||||
{ok, _, _} = emqtt:unsubscribe(C, <<"$SYS/systest">>),
|
||||
|
||||
%% ack
|
||||
{ok, _, _} = emqtt:subscribe(C, <<"/exhook1">>, qos1),
|
||||
timer:sleep(100),
|
||||
{ok, _} = emqtt:publish(C, <<"/exhook1">>, <<>>, qos1),
|
||||
timer:sleep(100),
|
||||
emqtt:stop(C),
|
||||
timer:sleep(100),
|
||||
ok.
|
||||
|
||||
t_simulated_handler(_) ->
|
||||
ClientInfo = #{clientid => <<"user-id-1">>,
|
||||
username => <<"usera">>,
|
||||
peerhost => {127,0,0,1},
|
||||
sockport => 1883,
|
||||
protocol => mqtt,
|
||||
mountpoint => undefined
|
||||
},
|
||||
%% resume/takeover
|
||||
ok = emqx_exhook_handler:on_session_resumed(ClientInfo, undefined),
|
||||
ok = emqx_exhook_handler:on_session_discarded(ClientInfo, undefined),
|
||||
ok = emqx_exhook_handler:on_session_takenover(ClientInfo, undefined),
|
||||
ok.
|
||||
|
||||
t_misc_test(_) ->
|
||||
"5.0.0" = emqx_exhook_proto_v1:introduced_in(),
|
||||
<<"test">> = emqx_exhook_server:name(#{name => <<"test">>}),
|
||||
_ = emqx_exhook_server:format(#{name => <<"test">>, hookspec => #{}}),
|
||||
ok.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Utils
|
||||
%%--------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue