@@ -33,6 +33,10 @@ def run_backgrounder
3333 def start_thread &block
3434 block . call
3535 end
36+
37+ def on_async_state_change
38+
39+ end
3640 end
3741
3842 let ( :actor ) { AsyncActorTest . new }
@@ -52,6 +56,21 @@ def start_thread &block
5256 thr . kill
5357 thr . join
5458 end
59+
60+ it "calls #on_async_state_change" do
61+ mocked_change = Minitest ::Mock . new
62+ mocked_change . expect :call , nil
63+
64+ actor . instance_variable_set :@lock_cond , OpenStruct . new ( broadcast : nil )
65+
66+ actor . stub :on_async_state_change , mocked_change do
67+ actor . stub :ensure_thread , nil do
68+ actor . async_stop
69+ end
70+ end
71+
72+ mocked_change . verify
73+ end
5574 end
5675
5776 describe "#async_stop" do
@@ -68,6 +87,21 @@ def start_thread &block
6887 stopping = actor . async_stop
6988 stopping . must_equal false
7089 end
90+
91+ it "calls #on_async_state_change" do
92+ mocked_change = Minitest ::Mock . new
93+ mocked_change . expect :call , nil
94+
95+ actor . instance_variable_set :@lock_cond , OpenStruct . new ( broadcast : nil )
96+
97+ actor . stub :on_async_state_change , mocked_change do
98+ actor . stub :ensure_thread , nil do
99+ actor . async_stop
100+ end
101+ end
102+
103+ mocked_change . verify
104+ end
71105 end
72106
73107 describe "#async_suspend" do
@@ -84,6 +118,21 @@ def start_thread &block
84118
85119 actor . async_stop
86120 end
121+
122+ it "calls #on_async_state_change" do
123+ mocked_change = Minitest ::Mock . new
124+ mocked_change . expect :call , nil
125+
126+ actor . instance_variable_set :@lock_cond , OpenStruct . new ( broadcast : nil )
127+
128+ actor . stub :on_async_state_change , mocked_change do
129+ actor . stub :ensure_thread , nil do
130+ actor . async_stop
131+ end
132+ end
133+
134+ mocked_change . verify
135+ end
87136 end
88137
89138 describe "#async_resume" do
@@ -102,6 +151,21 @@ def start_thread &block
102151
103152 actor . async_stop
104153 end
154+
155+ it "calls #on_async_state_change" do
156+ mocked_change = Minitest ::Mock . new
157+ mocked_change . expect :call , nil
158+
159+ actor . instance_variable_set :@lock_cond , OpenStruct . new ( broadcast : nil )
160+
161+ actor . stub :on_async_state_change , mocked_change do
162+ actor . stub :ensure_thread , nil do
163+ actor . async_stop
164+ end
165+ end
166+
167+ mocked_change . verify
168+ end
105169 end
106170
107171 describe "#async_running?" do
@@ -233,6 +297,21 @@ def start_thread &block
233297 stop . must_equal :forced
234298 actor . async_stopped? . must_equal true
235299 end
300+
301+ it "calls #on_async_state_change" do
302+ mocked_change = Minitest ::Mock . new
303+ mocked_change . expect :call , nil
304+
305+ actor . instance_variable_set :@lock_cond , OpenStruct . new ( broadcast : nil )
306+
307+ actor . stub :on_async_state_change , mocked_change do
308+ actor . stub :ensure_thread , nil do
309+ actor . async_stop
310+ end
311+ end
312+
313+ mocked_change . verify
314+ end
236315 end
237316
238317 describe ".register_for_cleanup" do
0 commit comments