From 65cb9dbf3833d2f382b81e3d3a08b0837dbea269 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Thu, 19 Sep 2019 11:16:13 +0800 Subject: [PATCH] Add test cases for 'reason/1' --- src/emqx_mod_presence.erl | 4 ++++ test/emqx_modules_SUITE.erl | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/emqx_mod_presence.erl b/src/emqx_mod_presence.erl index a1032ea57..84d69b48b 100644 --- a/src/emqx_mod_presence.erl +++ b/src/emqx_mod_presence.erl @@ -32,6 +32,10 @@ , on_client_disconnected/4 ]). +-ifdef(TEST). +-export([ reason/1 ]). +-endif. + load(Env) -> emqx_hooks:add('client.connected', {?MODULE, on_client_connected, [Env]}), emqx_hooks:add('client.disconnected', {?MODULE, on_client_disconnected, [Env]}). diff --git a/test/emqx_modules_SUITE.erl b/test/emqx_modules_SUITE.erl index 3ebbb6c06..12f304f54 100644 --- a/test/emqx_modules_SUITE.erl +++ b/test/emqx_modules_SUITE.erl @@ -69,6 +69,12 @@ t_mod_presence(_) -> ok = emqtt:disconnect(C1), ok = emqx_mod_presence:unload([{qos, ?QOS_1}]). +t_mod_presence_reason(_) -> + ?assertEqual(normal, emqx_mod_presence:reason(normal)), + ?assertEqual(discarded, emqx_mod_presence:reason({shutdown, discarded})), + ?assertEqual(tcp_error, emqx_mod_presence:reason({tcp_error, einval})), + ?assertEqual(internal_error, emqx_mod_presence:reason(<<"unknown error">>)). + recv_and_check_presence(ClientId, Presence) -> {ok, #{qos := ?QOS_1, topic := Topic, payload := Payload}} = receive_publish(100), ?assertMatch([<<"$SYS">>, <<"brokers">>, _Node, <<"clients">>, ClientId, Presence],