test: initialize clients in test setup, teardown after test
This commit is contained in:
parent
cded5fc6cf
commit
acef85e11a
|
@ -20,9 +20,7 @@
|
||||||
|
|
||||||
-include_lib("eunit/include/eunit.hrl").
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
-include_lib("emqx/include/emqx_mqtt.hrl").
|
-include_lib("emqx/include/emqx_mqtt.hrl").
|
||||||
|
-include_lib("common_test/include/ct.hrl").
|
||||||
-define(CLIENTID, <<"api_clientid">>).
|
|
||||||
-define(USERNAME, <<"api_username">>).
|
|
||||||
|
|
||||||
-define(TOPIC1, <<"api_topic1">>).
|
-define(TOPIC1, <<"api_topic1">>).
|
||||||
-define(TOPIC2, <<"api_topic2">>).
|
-define(TOPIC2, <<"api_topic2">>).
|
||||||
|
@ -44,16 +42,21 @@ end_per_testcase(Case, Config) ->
|
||||||
?MODULE:Case({'end', Config}).
|
?MODULE:Case({'end', Config}).
|
||||||
|
|
||||||
t_publish_api({init, Config}) ->
|
t_publish_api({init, Config}) ->
|
||||||
Config;
|
{ok, Client} = emqtt:start_link(
|
||||||
t_publish_api({'end', _Config}) ->
|
#{
|
||||||
ok;
|
username => <<"api_username">>,
|
||||||
t_publish_api(_) ->
|
clientid => <<"api_clientid">>
|
||||||
{ok, Client} = emqtt:start_link(#{
|
}
|
||||||
username => <<"api_username">>, clientid => <<"api_clientid">>
|
),
|
||||||
}),
|
|
||||||
{ok, _} = emqtt:connect(Client),
|
{ok, _} = emqtt:connect(Client),
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC1),
|
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC1),
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC2),
|
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC2),
|
||||||
|
[{client, Client} | Config];
|
||||||
|
t_publish_api({'end', Config}) ->
|
||||||
|
Client = ?config(client, Config),
|
||||||
|
emqtt:stop(Client),
|
||||||
|
ok;
|
||||||
|
t_publish_api(_) ->
|
||||||
Payload = <<"hello">>,
|
Payload = <<"hello">>,
|
||||||
Path = emqx_mgmt_api_test_util:api_path(["publish"]),
|
Path = emqx_mgmt_api_test_util:api_path(["publish"]),
|
||||||
Auth = emqx_mgmt_api_test_util:auth_header_(),
|
Auth = emqx_mgmt_api_test_util:auth_header_(),
|
||||||
|
@ -61,8 +64,7 @@ t_publish_api(_) ->
|
||||||
{ok, Response} = emqx_mgmt_api_test_util:request_api(post, Path, "", Auth, Body),
|
{ok, Response} = emqx_mgmt_api_test_util:request_api(post, Path, "", Auth, Body),
|
||||||
ResponseMap = decode_json(Response),
|
ResponseMap = decode_json(Response),
|
||||||
?assertEqual([<<"id">>], lists:sort(maps:keys(ResponseMap))),
|
?assertEqual([<<"id">>], lists:sort(maps:keys(ResponseMap))),
|
||||||
?assertEqual(ok, receive_assert(?TOPIC1, 0, Payload)),
|
?assertEqual(ok, receive_assert(?TOPIC1, 0, Payload)).
|
||||||
emqtt:stop(Client).
|
|
||||||
|
|
||||||
t_publish_no_subscriber({init, Config}) ->
|
t_publish_no_subscriber({init, Config}) ->
|
||||||
Config;
|
Config;
|
||||||
|
@ -163,16 +165,18 @@ t_publish_bad_topic_bulk(_Config) ->
|
||||||
).
|
).
|
||||||
|
|
||||||
t_publish_bulk_api({init, Config}) ->
|
t_publish_bulk_api({init, Config}) ->
|
||||||
Config;
|
|
||||||
t_publish_bulk_api({'end', _Config}) ->
|
|
||||||
ok;
|
|
||||||
t_publish_bulk_api(_) ->
|
|
||||||
{ok, Client} = emqtt:start_link(#{
|
{ok, Client} = emqtt:start_link(#{
|
||||||
username => <<"api_username">>, clientid => <<"api_clientid">>
|
username => <<"api_username">>, clientid => <<"api_clientid">>
|
||||||
}),
|
}),
|
||||||
{ok, _} = emqtt:connect(Client),
|
{ok, _} = emqtt:connect(Client),
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC1),
|
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC1),
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC2),
|
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC2),
|
||||||
|
[{client, Client} | Config];
|
||||||
|
t_publish_bulk_api({'end', Config}) ->
|
||||||
|
Client = ?config(client, Config),
|
||||||
|
emqtt:stop(Client),
|
||||||
|
ok;
|
||||||
|
t_publish_bulk_api(_) ->
|
||||||
Payload = <<"hello">>,
|
Payload = <<"hello">>,
|
||||||
Path = emqx_mgmt_api_test_util:api_path(["publish", "bulk"]),
|
Path = emqx_mgmt_api_test_util:api_path(["publish", "bulk"]),
|
||||||
Auth = emqx_mgmt_api_test_util:auth_header_(),
|
Auth = emqx_mgmt_api_test_util:auth_header_(),
|
||||||
|
@ -200,8 +204,7 @@ t_publish_bulk_api(_) ->
|
||||||
ResponseList
|
ResponseList
|
||||||
),
|
),
|
||||||
?assertEqual(ok, receive_assert(?TOPIC1, 0, Payload)),
|
?assertEqual(ok, receive_assert(?TOPIC1, 0, Payload)),
|
||||||
?assertEqual(ok, receive_assert(?TOPIC2, 0, Payload)),
|
?assertEqual(ok, receive_assert(?TOPIC2, 0, Payload)).
|
||||||
emqtt:stop(Client).
|
|
||||||
|
|
||||||
t_publish_no_subscriber_bulk({init, Config}) ->
|
t_publish_no_subscriber_bulk({init, Config}) ->
|
||||||
Config;
|
Config;
|
||||||
|
@ -267,17 +270,19 @@ t_publish_bulk_dispatch_one_message_invalid_topic(Config) when is_list(Config) -
|
||||||
t_publish_bulk_dispatch_failure({init, Config}) ->
|
t_publish_bulk_dispatch_failure({init, Config}) ->
|
||||||
meck:new(emqx, [no_link, passthrough, no_history]),
|
meck:new(emqx, [no_link, passthrough, no_history]),
|
||||||
meck:expect(emqx, is_running, fun() -> false end),
|
meck:expect(emqx, is_running, fun() -> false end),
|
||||||
Config;
|
|
||||||
t_publish_bulk_dispatch_failure({'end', _Config}) ->
|
|
||||||
meck:unload(emqx),
|
|
||||||
ok;
|
|
||||||
t_publish_bulk_dispatch_failure(Config) when is_list(Config) ->
|
|
||||||
{ok, Client} = emqtt:start_link(#{
|
{ok, Client} = emqtt:start_link(#{
|
||||||
username => <<"api_username">>, clientid => <<"api_clientid">>
|
username => <<"api_username">>, clientid => <<"api_clientid">>
|
||||||
}),
|
}),
|
||||||
{ok, _} = emqtt:connect(Client),
|
{ok, _} = emqtt:connect(Client),
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC1),
|
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC1),
|
||||||
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC2),
|
{ok, _, [0]} = emqtt:subscribe(Client, ?TOPIC2),
|
||||||
|
[{client, Client} | Config];
|
||||||
|
t_publish_bulk_dispatch_failure({'end', Config}) ->
|
||||||
|
meck:unload(emqx),
|
||||||
|
Client = ?config(client, Config),
|
||||||
|
emqtt:stop(Client),
|
||||||
|
ok;
|
||||||
|
t_publish_bulk_dispatch_failure(Config) when is_list(Config) ->
|
||||||
Payload = <<"hello">>,
|
Payload = <<"hello">>,
|
||||||
Path = emqx_mgmt_api_test_util:api_path(["publish", "bulk"]),
|
Path = emqx_mgmt_api_test_util:api_path(["publish", "bulk"]),
|
||||||
Auth = emqx_mgmt_api_test_util:auth_header_(),
|
Auth = emqx_mgmt_api_test_util:auth_header_(),
|
||||||
|
@ -303,8 +308,7 @@ t_publish_bulk_dispatch_failure(Config) when is_list(Config) ->
|
||||||
#{<<"reason_code">> := ?RC_NO_MATCHING_SUBSCRIBERS}
|
#{<<"reason_code">> := ?RC_NO_MATCHING_SUBSCRIBERS}
|
||||||
],
|
],
|
||||||
decode_json(ResponseBody)
|
decode_json(ResponseBody)
|
||||||
),
|
).
|
||||||
emqtt:stop(Client).
|
|
||||||
|
|
||||||
receive_assert(Topic, Qos, Payload) ->
|
receive_assert(Topic, Qos, Payload) ->
|
||||||
receive
|
receive
|
||||||
|
|
Loading…
Reference in New Issue