Skip to content

Commit 33a6a20

Browse files
committed
Shovels: tests for deletion of failed shovels
1 parent 13201b2 commit 33a6a20

File tree

1 file changed

+71
-3
lines changed

1 file changed

+71
-3
lines changed

deps/rabbitmq_shovel/test/delete_shovel_command_SUITE.erl

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
-include_lib("amqp_client/include/amqp_client.hrl").
1111
-include_lib("stdlib/include/assert.hrl").
12+
-include_lib("rabbitmq_ct_helpers/include/rabbit_assert.hrl").
1213

1314
-compile(export_all).
1415

@@ -26,11 +27,14 @@ groups() ->
2627
delete_not_found,
2728
delete,
2829
delete_internal,
29-
delete_internal_owner
30+
delete_internal_owner,
31+
delete_invalid_uri,
32+
delete_non_existent_dest_address
3033
]},
3134
{cluster_size_2, [], [
32-
clear_param_on_different_node
33-
]}
35+
clear_param_on_different_node,
36+
delete_invalid_uri_another_node
37+
]}
3438
].
3539

3640
%% -------------------------------------------------------------------
@@ -148,3 +152,67 @@ clear_param_on_different_node(Config) ->
148152
status, []), "Deleted shovel still reported on node A"),
149153
?assertEqual([], rabbit_ct_broker_helpers:rpc(Config, B, rabbit_shovel_status,
150154
status, []), "Deleted shovel still reported on node B").
155+
156+
delete_invalid_uri(Config) ->
157+
ok = rabbit_ct_broker_helpers:rpc(
158+
Config, 0, rabbit_runtime_parameters, set,
159+
[<<"/">>, <<"shovel">>, <<"myshovel">>,
160+
[{<<"src-protocol">>, <<"amqp091">>},
161+
{<<"src-uri">>, <<"amqp://foo">>},
162+
{<<"src-queue">>, <<"src">>},
163+
{<<"dest-protocol">>, <<"amqp091">>},
164+
{<<"dest-uri">>, shovel_test_utils:make_uri(Config, 0)},
165+
{<<"dest-queue">>, <<"dest">>}],
166+
none]),
167+
?awaitMatch([{{<<"/">>, <<"myshovel">>}, dynamic, {terminated, _}, _, _}],
168+
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_shovel_status,
169+
status, []),
170+
45_000),
171+
[A] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
172+
Opts = #{node => A, vhost => <<"/">>, force => false},
173+
ok = ?CMD:run([<<"myshovel">>], Opts),
174+
[] = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_shovel_status,
175+
status, []).
176+
177+
delete_non_existent_dest_address(Config) ->
178+
Uri = shovel_test_utils:make_uri(Config, 0),
179+
ok = rabbit_ct_broker_helpers:rpc(
180+
Config, 0, rabbit_runtime_parameters, set,
181+
[<<"/">>, <<"shovel">>, <<"myshovel">>,
182+
[{<<"src-protocol">>, <<"amqp091">>},
183+
{<<"src-uri">>, Uri},
184+
{<<"src-queue">>, <<"src">>},
185+
{<<"dest-protocol">>, <<"amqp10">>},
186+
{<<"dest-uri">>, Uri},
187+
{<<"dest-address">>, <<"/queues/q2">>}],
188+
none]),
189+
?awaitMatch([{{<<"/">>, <<"myshovel">>}, dynamic, {terminated, _}, _, _}],
190+
rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_shovel_status,
191+
status, []),
192+
45_000),
193+
[A] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
194+
Opts = #{node => A, vhost => <<"/">>, force => false},
195+
ok = ?CMD:run([<<"myshovel">>], Opts),
196+
[] = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_shovel_status,
197+
status, []).
198+
199+
delete_invalid_uri_another_node(Config) ->
200+
ok = rabbit_ct_broker_helpers:rpc(
201+
Config, 1, rabbit_runtime_parameters, set,
202+
[<<"/">>, <<"shovel">>, <<"myshovel">>,
203+
[{<<"src-protocol">>, <<"amqp091">>},
204+
{<<"src-uri">>, <<"amqp://foo">>},
205+
{<<"src-queue">>, <<"src">>},
206+
{<<"dest-protocol">>, <<"amqp091">>},
207+
{<<"dest-uri">>, shovel_test_utils:make_uri(Config, 0)},
208+
{<<"dest-queue">>, <<"dest">>}],
209+
none]),
210+
?awaitMatch([{{<<"/">>, <<"myshovel">>}, dynamic, {terminated, _}, _, _}],
211+
rabbit_ct_broker_helpers:rpc(Config, 1, rabbit_shovel_status,
212+
status, []),
213+
45_000),
214+
[A, _B] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
215+
Opts = #{node => A, vhost => <<"/">>, force => false},
216+
ok = ?CMD:run([<<"myshovel">>], Opts),
217+
[] = rabbit_ct_broker_helpers:rpc(Config, 1, rabbit_shovel_status,
218+
status, []).

0 commit comments

Comments
 (0)