Procházet zdrojové kódy

test(retainer): testcase for stop_publish_clear_msg

JianBo He před 4 roky
rodič
revize
e323b66285
1 změnil soubory, kde provedl 15 přidání a 0 odebrání
  1. 15 0
      apps/emqx_retainer/test/emqx_retainer_SUITE.erl

+ 15 - 0
apps/emqx_retainer/test/emqx_retainer_SUITE.erl

@@ -42,6 +42,8 @@ init_per_testcase(TestCase, Config) ->
     case TestCase of
     case TestCase of
         t_message_expiry_2 ->
         t_message_expiry_2 ->
             application:set_env(emqx_retainer, expiry_interval, 2000);
             application:set_env(emqx_retainer, expiry_interval, 2000);
+        t_stop_publish_clear_msg ->
+            application:set_env(emqx_retainer, stop_publish_clear_msg, true);
         _ ->
         _ ->
             application:set_env(emqx_retainer, expiry_interval, 0)
             application:set_env(emqx_retainer, expiry_interval, 0)
     end,
     end,
@@ -173,6 +175,19 @@ t_clean(_) ->
 
 
     ok = emqtt:disconnect(C1).
     ok = emqtt:disconnect(C1).
 
 
+t_stop_publish_clear_msg(_) ->
+    {ok, C1} = emqtt:start_link([{clean_start, true}, {proto_ver, v5}]),
+    {ok, _} = emqtt:connect(C1),
+    emqtt:publish(C1, <<"retained/0">>, <<"this is a retained message 0">>, [{qos, 0}, {retain, true}]),
+
+    {ok, #{}, [0]} = emqtt:subscribe(C1, <<"retained/#">>, [{qos, 0}, {rh, 0}]),
+    ?assertEqual(1, length(receive_messages(1))),
+
+    emqtt:publish(C1, <<"retained/0">>, <<"">>, [{qos, 0}, {retain, true}]),
+    ?assertEqual(0, length(receive_messages(1))),
+
+    ok = emqtt:disconnect(C1).
+
 %%--------------------------------------------------------------------
 %%--------------------------------------------------------------------
 %% Helper functions
 %% Helper functions
 %%--------------------------------------------------------------------
 %%--------------------------------------------------------------------