@@ -31,30 +31,15 @@ suite() ->
3131
3232init_per_suite (Config ) ->
3333 ok = application :load (rabbitmq_mqtt ),
34+ meck :new (rabbit_runtime_parameters , [passthrough , no_link ]),
3435 Config .
3536end_per_suite (Config ) ->
3637 ok = application :unload (rabbitmq_mqtt ),
38+ meck :unload (rabbit_runtime_parameters ),
3739 Config .
3840init_per_group (_ , Config ) -> Config .
3941end_per_group (_ , Config ) -> Config .
40- init_per_testcase (get_vhost , Config ) ->
41- mnesia :start (),
42- mnesia :create_table (rabbit_runtime_parameters , [
43- {attributes , record_info (fields , runtime_parameters )},
44- {record_name , runtime_parameters }]),
45- meck :new (rabbit_feature_flags , [passthrough , no_link ]),
46- meck :expect (
47- rabbit_feature_flags , is_enabled ,
48- fun
49- (khepri_db , _ ) -> false ;
50- (FeatureNames , _ ) -> meck :passthrough ([FeatureNames ])
51- end ),
52- Config ;
5342init_per_testcase (_ , Config ) -> Config .
54- end_per_testcase (get_vhost , Config ) ->
55- meck :unload (rabbit_feature_flags ),
56- mnesia :stop (),
57- Config ;
5843end_per_testcase (_ , Config ) -> Config .
5944
6045ignore_colons (B ) -> application :set_env (rabbitmq_mqtt , ignore_colons_in_username , B ).
@@ -150,26 +135,32 @@ get_vhost(_Config) ->
150135
151136 % % certificate user, port/vhost parameter but no mapping, cert/vhost mapping
152137 % % should use cert/vhost mapping
153- set_global_parameter (mqtt_default_vhosts , [
154- {<<" O=client,CN=dummy" >>, <<" somevhost" >>},
155- {<<" O=client,CN=otheruser" >>, <<" othervhost" >>}
156- ]),
157- set_global_parameter (mqtt_port_to_vhost_mapping , [
158- {<<" 1884" >>, <<" othervhost" >>}
159- ]),
138+ set_global_parameters (
139+ [{mqtt_default_vhosts ,
140+ [
141+ {<<" O=client,CN=dummy" >>, <<" somevhost" >>},
142+ {<<" O=client,CN=otheruser" >>, <<" othervhost" >>}
143+ ]},
144+ {mqtt_port_to_vhost_mapping ,
145+ [
146+ {<<" 1884" >>, <<" othervhost" >>}
147+ ]}]),
160148 {_ , {<<" somevhost" >>, <<" guest" >>}} = rabbit_mqtt_processor :get_vhost (<<" guest" >>, <<" O=client,CN=dummy" >>, 1883 ),
161149 clear_vhost_global_parameters (),
162150
163151 % % certificate user, port/vhost parameter, cert/vhost parameter
164152 % % cert/vhost parameter takes precedence
165- set_global_parameter (mqtt_default_vhosts , [
166- {<<" O=client,CN=dummy" >>, <<" cert-somevhost" >>},
167- {<<" O=client,CN=otheruser" >>, <<" othervhost" >>}
168- ]),
169- set_global_parameter (mqtt_port_to_vhost_mapping , [
170- {<<" 1883" >>, <<" port-vhost" >>},
171- {<<" 1884" >>, <<" othervhost" >>}
172- ]),
153+ set_global_parameters (
154+ [{mqtt_default_vhosts ,
155+ [
156+ {<<" O=client,CN=dummy" >>, <<" cert-somevhost" >>},
157+ {<<" O=client,CN=otheruser" >>, <<" othervhost" >>}
158+ ]},
159+ {mqtt_port_to_vhost_mapping ,
160+ [
161+ {<<" 1883" >>, <<" port-vhost" >>},
162+ {<<" 1884" >>, <<" othervhost" >>}
163+ ]}]),
173164 {_ , {<<" cert-somevhost" >>, <<" guest" >>}} = rabbit_mqtt_processor :get_vhost (<<" guest" >>, <<" O=client,CN=dummy" >>, 1883 ),
174165 clear_vhost_global_parameters (),
175166
@@ -179,28 +170,30 @@ get_vhost(_Config) ->
179170
180171 % % not a certificate user, port/vhost parameter, cert/vhost parameter
181172 % % port/vhost mapping is used, as cert/vhost should not be used
182- set_global_parameter (mqtt_default_vhosts , [
183- {<<" O=cert" >>, <<" cert-somevhost" >>},
184- {<<" O=client,CN=otheruser" >>, <<" othervhost" >>}
185- ]),
186- set_global_parameter (mqtt_port_to_vhost_mapping , [
187- {<<" 1883" >>, <<" port-vhost" >>},
188- {<<" 1884" >>, <<" othervhost" >>}
189- ]),
173+ set_global_parameters (
174+ [{mqtt_default_vhosts ,
175+ [
176+ {<<" O=cert" >>, <<" cert-somevhost" >>},
177+ {<<" O=client,CN=otheruser" >>, <<" othervhost" >>}
178+ ]},
179+ {mqtt_port_to_vhost_mapping ,
180+ [
181+ {<<" 1883" >>, <<" port-vhost" >>},
182+ {<<" 1884" >>, <<" othervhost" >>}
183+ ]}]),
190184 {_ , {<<" port-vhost" >>, <<" guest" >>}} = rabbit_mqtt_processor :get_vhost (<<" guest" >>, none , 1883 ),
191185 clear_vhost_global_parameters (),
192186 ok .
193187
194188set_global_parameter (Key , Term ) ->
195- InsertParameterFun = fun () ->
196- mnesia :write (rabbit_runtime_parameters , # runtime_parameters {key = Key , value = Term }, write )
197- end ,
189+ set_global_parameters ([{Key , Term }]).
198190
199- {atomic , ok } = mnesia :transaction (InsertParameterFun ).
191+ set_global_parameters (KVList ) ->
192+ meck :expect (
193+ rabbit_runtime_parameters , value_global ,
194+ fun (Key ) -> proplists :get_value (Key , KVList , not_found ) end ).
200195
201196clear_vhost_global_parameters () ->
202- DeleteParameterFun = fun () ->
203- ok = mnesia :delete (rabbit_runtime_parameters , mqtt_default_vhosts , write ),
204- ok = mnesia :delete (rabbit_runtime_parameters , mqtt_port_to_vhost_mapping , write )
205- end ,
206- {atomic , ok } = mnesia :transaction (DeleteParameterFun ).
197+ meck :expect (
198+ rabbit_runtime_parameters , value_global ,
199+ fun (_ ) -> not_found end ).
0 commit comments