test: add test for pubsub api
This commit is contained in:
parent
81fad58f12
commit
28382ec26b
|
@ -124,7 +124,11 @@ t_lookup_client(_Config) ->
|
||||||
[{Chan, Info, Stats}],
|
[{Chan, Info, Stats}],
|
||||||
emqx_mgmt:lookup_client({username, <<"user1">>}, ?FORMATFUN)
|
emqx_mgmt:lookup_client({username, <<"user1">>}, ?FORMATFUN)
|
||||||
),
|
),
|
||||||
?assertEqual([], emqx_mgmt:lookup_client({clientid, <<"notfound">>}, ?FORMATFUN)).
|
?assertEqual([], emqx_mgmt:lookup_client({clientid, <<"notfound">>}, ?FORMATFUN)),
|
||||||
|
meck:expect(mria_mnesia, running_nodes, 0, [node(), 'fake@nonode']),
|
||||||
|
?assertMatch(
|
||||||
|
[_ | {error, nodedown}], emqx_mgmt:lookup_client({clientid, <<"client1">>}, ?FORMATFUN)
|
||||||
|
).
|
||||||
|
|
||||||
t_kickout_client(init, Config) ->
|
t_kickout_client(init, Config) ->
|
||||||
process_flag(trap_exit, true),
|
process_flag(trap_exit, true),
|
||||||
|
@ -183,6 +187,15 @@ t_clean_cache(_Config) ->
|
||||||
?assertNotMatch(
|
?assertNotMatch(
|
||||||
{error, _},
|
{error, _},
|
||||||
emqx_mgmt:clean_pem_cache_all()
|
emqx_mgmt:clean_pem_cache_all()
|
||||||
|
),
|
||||||
|
meck:expect(mria_mnesia, running_nodes, 0, [node(), 'fake@nonode']),
|
||||||
|
?assertMatch(
|
||||||
|
{error, [{'fake@nonode', {error, _}}]},
|
||||||
|
emqx_mgmt:clean_authz_cache_all()
|
||||||
|
),
|
||||||
|
?assertMatch(
|
||||||
|
{error, [{'fake@nonode', {error, _}}]},
|
||||||
|
emqx_mgmt:clean_pem_cache_all()
|
||||||
).
|
).
|
||||||
|
|
||||||
t_set_client_props(init, Config) ->
|
t_set_client_props(init, Config) ->
|
||||||
|
@ -237,6 +250,64 @@ t_list_subscriptions_via_topic(Config) ->
|
||||||
emqx_mgmt:list_subscriptions_via_topic(<<"t/#">>, ?FORMATFUN)
|
emqx_mgmt:list_subscriptions_via_topic(<<"t/#">>, ?FORMATFUN)
|
||||||
).
|
).
|
||||||
|
|
||||||
|
t_pubsub_api(init, Config) ->
|
||||||
|
setup_clients(Config);
|
||||||
|
t_pubsub_api('end', Config) ->
|
||||||
|
disconnect_clients(Config).
|
||||||
|
|
||||||
|
-define(TT(Topic), {Topic, #{qos => 0}}).
|
||||||
|
|
||||||
|
t_pubsub_api(Config) ->
|
||||||
|
[Client | _] = ?config(clients, Config),
|
||||||
|
?assertEqual([], emqx_mgmt:list_subscriptions_via_topic(<<"t/#">>, ?FORMATFUN)),
|
||||||
|
?assertMatch(
|
||||||
|
{subscribe, _, _},
|
||||||
|
emqx_mgmt:subscribe(<<"client1">>, [?TT(<<"t/#">>), ?TT(<<"t1/#">>), ?TT(<<"t2/#">>)])
|
||||||
|
),
|
||||||
|
timer:sleep(100),
|
||||||
|
?assertMatch(
|
||||||
|
[{{<<"t/#">>, _SubPid}, _Opts}],
|
||||||
|
emqx_mgmt:list_subscriptions_via_topic(<<"t/#">>, ?FORMATFUN)
|
||||||
|
),
|
||||||
|
Message = emqx_message:make(?MODULE, 0, <<"t/foo">>, <<"helloworld">>, #{}, #{}),
|
||||||
|
emqx_mgmt:publish(Message),
|
||||||
|
Recv =
|
||||||
|
receive
|
||||||
|
{publish, #{client_pid := Client, payload := <<"helloworld">>}} ->
|
||||||
|
ok
|
||||||
|
after 100 ->
|
||||||
|
timeout
|
||||||
|
end,
|
||||||
|
?assertEqual(ok, Recv),
|
||||||
|
?assertEqual({error, channel_not_found}, emqx_mgmt:subscribe(<<"notfound">>, [?TT(<<"t/#">>)])),
|
||||||
|
?assertNotMatch({error, _}, emqx_mgmt:unsubscribe(<<"client1">>, <<"t/#">>)),
|
||||||
|
?assertEqual({error, channel_not_found}, emqx_mgmt:unsubscribe(<<"notfound">>, <<"t/#">>)),
|
||||||
|
Node = node(),
|
||||||
|
?assertMatch(
|
||||||
|
{Node, [{<<"t1/#">>, _}, {<<"t2/#">>, _}]},
|
||||||
|
emqx_mgmt:list_client_subscriptions(<<"client1">>)
|
||||||
|
),
|
||||||
|
?assertMatch(
|
||||||
|
{unsubscribe, [{<<"t1/#">>, _}, {<<"t2/#">>, _}]},
|
||||||
|
emqx_mgmt:unsubscribe_batch(<<"client1">>, [<<"t1/#">>, <<"t2/#">>])
|
||||||
|
),
|
||||||
|
timer:sleep(100),
|
||||||
|
?assertMatch([], emqx_mgmt:list_client_subscriptions(<<"client1">>)),
|
||||||
|
?assertEqual(
|
||||||
|
{error, channel_not_found},
|
||||||
|
emqx_mgmt:unsubscribe_batch(<<"notfound">>, [<<"t1/#">>, <<"t2/#">>])
|
||||||
|
).
|
||||||
|
|
||||||
|
t_alarms(init, Config) ->
|
||||||
|
[
|
||||||
|
emqx_mgmt:deactivate(Node, Name)
|
||||||
|
|| {Node, ActiveAlarms} <- emqx_mgmt:get_alarms(activated), #{name := Name} <- ActiveAlarms
|
||||||
|
],
|
||||||
|
emqx_mgmt:delete_all_deactivated_alarms(),
|
||||||
|
Config;
|
||||||
|
t_alarms('end', Config) ->
|
||||||
|
Config.
|
||||||
|
|
||||||
t_alarms(_) ->
|
t_alarms(_) ->
|
||||||
Node = node(),
|
Node = node(),
|
||||||
?assertEqual(
|
?assertEqual(
|
||||||
|
|
Loading…
Reference in New Issue