@@ -24,7 +24,8 @@ groups() ->
2424 declare_exchanges ,
2525 deduplicate_message ,
2626 deduplicate_message_ttl ,
27- deduplicate_message_cache_overflow
27+ deduplicate_message_cache_overflow ,
28+ exchange_policy
2829 ]}
2930 ].
3031
@@ -176,6 +177,36 @@ deduplicate_message_cache_overflow(Config) ->
176177 {# 'basic.get_ok' {}, _ } = amqp_channel :call (Channel , Get ),
177178 {# 'basic.get_ok' {}, _ } = amqp_channel :call (Channel , Get ).
178179
180+ exchange_policy (Config ) ->
181+ Get = # 'basic.get' {queue = <<" test" >>},
182+ Channel = rabbit_ct_client_helpers :open_channel (Config ),
183+
184+ # 'exchange.declare_ok' {} = amqp_channel :call (
185+ Channel , make_exchange (<<" test" >>, 1 , 10000 )),
186+ bind_new_queue (Channel , <<" test" >>, <<" test" >>),
187+
188+ % Cache size is increased to 2. There should not be overflow
189+ rabbit_ct_broker_helpers :set_policy (Config , 0 , <<" policy-test" >>,
190+ <<" .*" >>, <<" all" >>, [{<<" x-cache-size" >>, 5 }]),
191+
192+ publish_message (Channel , <<" test" >>, " deduplicate-this" ),
193+ publish_message (Channel , <<" test" >>, " deduplicate-that" ),
194+ publish_message (Channel , <<" test" >>, " deduplicate-this" ),
195+
196+ {# 'basic.get_ok' {}, _ } = amqp_channel :call (Channel , Get ),
197+ {# 'basic.get_ok' {}, _ } = amqp_channel :call (Channel , Get ),
198+ # 'basic.get_empty' {} = amqp_channel :call (Channel , Get ),
199+
200+ % Policy is cleared, default arguments are restored
201+ rabbit_ct_broker_helpers :clear_policy (Config , 0 , <<" policy-test" >>),
202+
203+ publish_message (Channel , <<" test" >>, " deduplicate-those" ),
204+ publish_message (Channel , <<" test" >>, " deduplicate-those" ),
205+
206+ {# 'basic.get_ok' {}, _ } = amqp_channel :call (Channel , Get ),
207+ # 'basic.get_empty' {} = amqp_channel :call (Channel , Get ).
208+
209+
179210% % -------------------------------------------------------------------
180211% % Utility functions.
181212% % -------------------------------------------------------------------
0 commit comments