Просмотр исходного кода

Add tests for remote reg/unreg/join/leave.

Roberto Ostinelli 3 лет назад
Родитель
Сommit
36026c07cc
2 измененных файлов с 57 добавлено и 0 удалено
  1. 23 0
      test/syn_groups_SUITE.erl
  2. 34 0
      test/syn_registry_SUITE.erl

+ 23 - 0
test/syn_groups_SUITE.erl

@@ -1289,6 +1289,7 @@ three_nodes_custom_event_handler_joined_left(Config) ->
 
     %% start process
     Pid = syn_test_suite_helper:start_process(),
+    Pid2 = syn_test_suite_helper:start_process(),
 
     %% ---> on join
     ok = syn:join("my-group", Pid, {recipient, self(), <<"meta">>}),
@@ -1301,6 +1302,17 @@ three_nodes_custom_event_handler_joined_left(Config) ->
     ]),
     syn_test_suite_helper:assert_empty_queue(self()),
 
+    %% join from another node
+    ok = rpc:call(SlaveNode1, syn, join, ["my-group", Pid2, {recipient, self(), <<"meta-for-2">>}]),
+
+    %% check callbacks called
+    syn_test_suite_helper:assert_received_messages([
+        {on_process_joined, CurrentNode, default, "my-group", Pid2, <<"meta-for-2">>},
+        {on_process_joined, SlaveNode1, default, "my-group", Pid2, <<"meta-for-2">>},
+        {on_process_joined, SlaveNode2, default, "my-group", Pid2, <<"meta-for-2">>}
+    ]),
+    syn_test_suite_helper:assert_empty_queue(self()),
+
     %% ---> on meta update
     ok = syn:join("my-group", Pid, {recipient, self(), <<"new-meta-0">>}),
 
@@ -1334,6 +1346,17 @@ three_nodes_custom_event_handler_joined_left(Config) ->
     ]),
     syn_test_suite_helper:assert_empty_queue(self()),
 
+    %% leave from another node
+    ok = rpc:call(SlaveNode1, syn, leave, ["my-group", Pid2]),
+
+    %% check callbacks called
+    syn_test_suite_helper:assert_received_messages([
+        {on_process_left, CurrentNode, default, "my-group", Pid2, <<"meta-for-2">>},
+        {on_process_left, SlaveNode1, default, "my-group", Pid2, <<"meta-for-2">>},
+        {on_process_left, SlaveNode2, default, "my-group", Pid2, <<"meta-for-2">>}
+    ]),
+    syn_test_suite_helper:assert_empty_queue(self()),
+
     %% clean & check
     syn_test_suite_helper:kill_process(Pid),
     syn_test_suite_helper:assert_empty_queue(self()),

+ 34 - 0
test/syn_registry_SUITE.erl

@@ -1230,6 +1230,7 @@ three_nodes_custom_event_handler_reg_unreg(Config) ->
 
     %% start process
     Pid = syn_test_suite_helper:start_process(),
+    Pid2 = syn_test_suite_helper:start_process(),
 
     %% ---> on registration
     ok = syn:register("proc-handler", Pid, {recipient, self(), <<"meta">>}),
@@ -1242,6 +1243,17 @@ three_nodes_custom_event_handler_reg_unreg(Config) ->
     ]),
     syn_test_suite_helper:assert_empty_queue(self()),
 
+    %% registration from another node
+    ok = rpc:call(SlaveNode1, syn, register, ["proc-handler-2", Pid2, {recipient, self(), <<"meta-for-2">>}]),
+
+    %% check callbacks called
+    syn_test_suite_helper:assert_received_messages([
+        {on_process_registered, CurrentNode, default, "proc-handler-2", Pid2, <<"meta-for-2">>},
+        {on_process_registered, SlaveNode1, default, "proc-handler-2", Pid2, <<"meta-for-2">>},
+        {on_process_registered, SlaveNode2, default, "proc-handler-2", Pid2, <<"meta-for-2">>}
+    ]),
+    syn_test_suite_helper:assert_empty_queue(self()),
+
     %% ---> on meta update
     ok = syn:register("proc-handler", Pid, {recipient, self(), <<"new-meta">>}),
 
@@ -1253,6 +1265,17 @@ three_nodes_custom_event_handler_reg_unreg(Config) ->
     ]),
     syn_test_suite_helper:assert_empty_queue(self()),
 
+    %% meta update from another node
+    ok = rpc:call(SlaveNode1, syn, register, ["proc-handler-2", Pid2, {recipient, self(), <<"meta-for-2-update">>}]),
+
+    %% check callbacks called
+    syn_test_suite_helper:assert_received_messages([
+        {on_registry_process_updated, CurrentNode, default, "proc-handler-2", Pid2, <<"meta-for-2-update">>},
+        {on_registry_process_updated, SlaveNode1, default, "proc-handler-2", Pid2, <<"meta-for-2-update">>},
+        {on_registry_process_updated, SlaveNode2, default, "proc-handler-2", Pid2, <<"meta-for-2-update">>}
+    ]),
+    syn_test_suite_helper:assert_empty_queue(self()),
+
     %% ---> on unregister
     ok = syn:unregister("proc-handler"),
 
@@ -1264,6 +1287,17 @@ three_nodes_custom_event_handler_reg_unreg(Config) ->
     ]),
     syn_test_suite_helper:assert_empty_queue(self()),
 
+    %% unregister from another node
+    ok = rpc:call(SlaveNode1, syn, unregister, ["proc-handler-2"]),
+
+    %% check callbacks called
+    syn_test_suite_helper:assert_received_messages([
+        {on_process_unregistered, CurrentNode, default, "proc-handler-2", Pid2, <<"meta-for-2-update">>},
+        {on_process_unregistered, SlaveNode1, default, "proc-handler-2", Pid2, <<"meta-for-2-update">>},
+        {on_process_unregistered, SlaveNode2, default, "proc-handler-2", Pid2, <<"meta-for-2-update">>}
+    ]),
+    syn_test_suite_helper:assert_empty_queue(self()),
+
     %% clean & check
     syn_test_suite_helper:kill_process(Pid),
     syn_test_suite_helper:assert_empty_queue(self()),