@@ -19,7 +19,8 @@ all() ->
19
19
all_tests () ->
20
20
[
21
21
normal_queue_delete_with ,
22
- internal_queue_delete_with
22
+ internal_owner_queue_delete_with ,
23
+ internal_no_owner_queue_delete_with
23
24
].
24
25
25
26
groups () ->
@@ -44,7 +45,9 @@ end_per_group(_Group, Config) ->
44
45
45
46
init_per_testcase (Testcase , Config ) ->
46
47
Config1 = rabbit_ct_helpers :testcase_started (Config , Testcase ),
47
- rabbit_ct_helpers :run_steps (Config1 ,
48
+ QName = rabbit_misc :r (<<" /" >>, queue , rabbit_data_coercion :to_binary (Testcase )),
49
+ Config2 = rabbit_ct_helpers :set_config (Config1 , [{queue_name , QName }]),
50
+ rabbit_ct_helpers :run_steps (Config2 ,
48
51
rabbit_ct_client_helpers :setup_steps ()).
49
52
50
53
end_per_testcase (Testcase , Config ) ->
@@ -58,7 +61,7 @@ end_per_testcase(Testcase, Config) ->
58
61
% %%===================================================================
59
62
60
63
normal_queue_delete_with (Config ) ->
61
- QName = queue_name ( Config , << " normal " >> ),
64
+ QName = ? config ( queue_name , Config ),
62
65
Node = rabbit_ct_broker_helpers :get_node_config (Config , 0 , nodename ),
63
66
Queue = amqqueue :new (QName ,
64
67
none , % % pid
@@ -78,8 +81,8 @@ normal_queue_delete_with(Config) ->
78
81
79
82
ok .
80
83
81
- internal_queue_delete_with (Config ) ->
82
- QName = queue_name ( Config , << " internal_protected " >> ),
84
+ internal_owner_queue_delete_with (Config ) ->
85
+ QName = ? config ( queue_name , Config ),
83
86
Node = rabbit_ct_broker_helpers :get_node_config (Config , 0 , nodename ),
84
87
Queue = amqqueue :new (QName ,
85
88
none , % % pid
@@ -96,7 +99,7 @@ internal_queue_delete_with(Config) ->
96
99
97
100
? assertException (exit , {exception ,
98
101
{amqp_error , resource_locked ,
99
- " Cannot delete protected queue 'rabbit_amqqueue_tests/internal_protected ' in vhost '/'." ,
102
+ " Cannot delete protected queue 'internal_owner_queue_delete_with ' in vhost '/'." ,
100
103
none }}, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_amqqueue , delete_with , [QName , false , false , <<" dummy" >>])),
101
104
102
105
? assertMatch ({ok , _ }, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_amqqueue , lookup , [QName ])),
@@ -107,11 +110,31 @@ internal_queue_delete_with(Config) ->
107
110
108
111
ok .
109
112
110
- % % Utility
113
+ internal_no_owner_queue_delete_with (Config ) ->
114
+ QName = ? config (queue_name , Config ),
115
+ Node = rabbit_ct_broker_helpers :get_node_config (Config , 0 , nodename ),
116
+ Queue = amqqueue :new (QName ,
117
+ none , % % pid
118
+ true , % % durable
119
+ false , % % auto delete
120
+ none , % % owner,
121
+ [],
122
+ <<" /" >>,
123
+ #{},
124
+ rabbit_classic_queue ),
125
+ IQueue = amqqueue :make_internal (Queue ),
126
+
127
+ ? assertMatch ({new , _Q }, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_queue_type , declare , [IQueue , Node ])),
128
+
129
+ ? assertException (exit , {exception ,
130
+ {amqp_error , resource_locked ,
131
+ " Cannot delete protected queue 'internal_no_owner_queue_delete_with' in vhost '/'." ,
132
+ none }}, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_amqqueue , delete_with , [QName , false , false , <<" dummy" >>])),
111
133
112
- queue_name (Config , Name ) ->
113
- Name1 = iolist_to_binary (rabbit_ct_helpers :config_to_testcase_name (Config , Name )),
114
- queue_name (Name1 ).
134
+ ? assertMatch ({ok , _ }, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_amqqueue , lookup , [QName ])),
115
135
116
- queue_name (Name ) ->
117
- rabbit_misc :r (<<" /" >>, queue , Name ).
136
+ ? assertMatch ({ok , _ }, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_amqqueue , delete_with , [QName , false , false , ? INTERNAL_USER ])),
137
+
138
+ ? assertMatch ({error , not_found }, rabbit_ct_broker_helpers :rpc (Config , 0 , rabbit_amqqueue , lookup , [QName ])),
139
+
140
+ ok .
0 commit comments