|
|
@@ -82,11 +82,19 @@ end_per_suite(_Config) ->
|
|
|
emqx_mgmt_api_test_util:end_suite([emqx_rule_engine, emqx_bridge]),
|
|
|
ok.
|
|
|
|
|
|
+init_per_testcase(t_bad_bpapi_vsn, Config) ->
|
|
|
+ meck:new(emqx_bpapi, [passthrough]),
|
|
|
+ meck:expect(emqx_bpapi, supported_version, 1, 1),
|
|
|
+ meck:expect(emqx_bpapi, supported_version, 2, 1),
|
|
|
+ init_per_testcase(commong, Config);
|
|
|
init_per_testcase(_, Config) ->
|
|
|
{ok, _} = emqx_cluster_rpc:start_link(node(), emqx_cluster_rpc, 1000),
|
|
|
{Port, Sock, Acceptor} = start_http_server(fun handle_fun_200_ok/2),
|
|
|
[{port, Port}, {sock, Sock}, {acceptor, Acceptor} | Config].
|
|
|
|
|
|
+end_per_testcase(t_bad_bpapi_vsn, Config) ->
|
|
|
+ meck:unload([emqx_bpapi]),
|
|
|
+ end_per_testcase(commong, Config);
|
|
|
end_per_testcase(_, Config) ->
|
|
|
Sock = ?config(sock, Config),
|
|
|
Acceptor = ?config(acceptor, Config),
|
|
|
@@ -440,6 +448,20 @@ t_start_stop_bridges_node(Config) ->
|
|
|
t_start_stop_bridges_cluster(Config) ->
|
|
|
do_start_stop_bridges(cluster, Config).
|
|
|
|
|
|
+t_bad_bpapi_vsn(Config) ->
|
|
|
+ Port = ?config(port, Config),
|
|
|
+ URL1 = ?URL(Port, "abc"),
|
|
|
+ Name = <<"t_bad_bpapi_vsn">>,
|
|
|
+ {ok, 201, _Bridge} = request(
|
|
|
+ post,
|
|
|
+ uri(["bridges"]),
|
|
|
+ ?HTTP_BRIDGE(URL1, ?BRIDGE_TYPE, Name)
|
|
|
+ ),
|
|
|
+ BridgeID = emqx_bridge_resource:bridge_id(?BRIDGE_TYPE, Name),
|
|
|
+ {ok, 501, <<>>} = request(post, operation_path(cluster, start, BridgeID), <<"">>),
|
|
|
+ {ok, 501, <<>>} = request(post, operation_path(node, start, BridgeID), <<"">>),
|
|
|
+ ok.
|
|
|
+
|
|
|
do_start_stop_bridges(Type, Config) ->
|
|
|
%% assert we there's no bridges at first
|
|
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
|
|
@@ -463,21 +485,25 @@ do_start_stop_bridges(Type, Config) ->
|
|
|
} = jsx:decode(Bridge),
|
|
|
BridgeID = emqx_bridge_resource:bridge_id(?BRIDGE_TYPE, Name),
|
|
|
%% stop it
|
|
|
- {ok, 200, <<>>} = request(post, operation_path(Type, stop, BridgeID), <<"">>),
|
|
|
+ {ok, 204, <<>>} = request(post, operation_path(Type, stop, BridgeID), <<"">>),
|
|
|
{ok, 200, Bridge2} = request(get, uri(["bridges", BridgeID]), []),
|
|
|
?assertMatch(#{<<"status">> := <<"stopped">>}, jsx:decode(Bridge2)),
|
|
|
%% start again
|
|
|
- {ok, 200, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
|
|
+ {ok, 204, <<>>} = request(post, operation_path(Type, start, BridgeID), <<"">>),
|
|
|
{ok, 200, Bridge3} = request(get, uri(["bridges", BridgeID]), []),
|
|
|
?assertMatch(#{<<"status">> := <<"connected">>}, jsx:decode(Bridge3)),
|
|
|
+ %% start a started bridge
|
|
|
+ {ok, 204, <<>>} = request(post, operation_path(Type, start, BridgeID), <<"">>),
|
|
|
+ {ok, 200, Bridge3_1} = request(get, uri(["bridges", BridgeID]), []),
|
|
|
+ ?assertMatch(#{<<"status">> := <<"connected">>}, jsx:decode(Bridge3_1)),
|
|
|
%% restart an already started bridge
|
|
|
- {ok, 200, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
|
|
+ {ok, 204, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
|
|
{ok, 200, Bridge3} = request(get, uri(["bridges", BridgeID]), []),
|
|
|
?assertMatch(#{<<"status">> := <<"connected">>}, jsx:decode(Bridge3)),
|
|
|
%% stop it again
|
|
|
- {ok, 200, <<>>} = request(post, operation_path(Type, stop, BridgeID), <<"">>),
|
|
|
+ {ok, 204, <<>>} = request(post, operation_path(Type, stop, BridgeID), <<"">>),
|
|
|
%% restart a stopped bridge
|
|
|
- {ok, 200, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
|
|
+ {ok, 204, <<>>} = request(post, operation_path(Type, restart, BridgeID), <<"">>),
|
|
|
{ok, 200, Bridge4} = request(get, uri(["bridges", BridgeID]), []),
|
|
|
?assertMatch(#{<<"status">> := <<"connected">>}, jsx:decode(Bridge4)),
|
|
|
%% delete the bridge
|
|
|
@@ -536,7 +562,7 @@ t_enable_disable_bridges(Config) ->
|
|
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []).
|
|
|
|
|
|
t_reset_bridges(Config) ->
|
|
|
- %% assert we there's no bridges at first
|
|
|
+ %% assert there's no bridges at first
|
|
|
{ok, 200, <<"[]">>} = request(get, uri(["bridges"]), []),
|
|
|
|
|
|
Name = ?BRIDGE_NAME,
|
|
|
@@ -557,7 +583,7 @@ t_reset_bridges(Config) ->
|
|
|
<<"url">> := URL1
|
|
|
} = jsx:decode(Bridge),
|
|
|
BridgeID = emqx_bridge_resource:bridge_id(?BRIDGE_TYPE, Name),
|
|
|
- {ok, 200, <<"Reset success">>} = request(put, uri(["bridges", BridgeID, "metrics/reset"]), []),
|
|
|
+ {ok, 204, <<>>} = request(put, uri(["bridges", BridgeID, "metrics/reset"]), []),
|
|
|
|
|
|
%% delete the bridge
|
|
|
{ok, 204, <<>>} = request(delete, uri(["bridges", BridgeID]), []),
|