@@ -470,6 +470,52 @@ def self.perform
470470 assert_not_equal original_connection , Resque . redis . client . connection . instance_variable_get ( "@sock" )
471471 end
472472
473+ it "Will call before_pause before it is paused" do
474+ $BEFORE_PAUSE_CALLED = false
475+ $CAPTURED_WORKER = nil
476+
477+ Resque . before_pause do |worker |
478+ $BEFORE_PAUSE_CALLED = true
479+ $CAPTURED_WORKER = worker
480+ end
481+
482+ @worker . instance_variable_set ( :@paused , true )
483+
484+ assert !$BEFORE_PAUSE_CALLED
485+
486+ t = Thread . start { sleep ( 1 ) ; Process . kill ( 'CONT' , @worker . pid ) }
487+
488+ @worker . work ( 0 )
489+
490+ t . join
491+
492+ assert $BEFORE_PAUSE_CALLED
493+ assert_equal @worker , $CAPTURED_WORKER
494+ end
495+
496+ it "Will call after_pause after it is paused" do
497+ $AFTER_PAUSED_CALLED = false
498+ $CAPTURED_WORKER = nil
499+
500+ Resque . after_pause do |worker |
501+ $AFTER_PAUSED_CALLED = true
502+ $CAPTURED_WORKER = worker
503+ end
504+
505+ @worker . instance_variable_set ( :@paused , true )
506+
507+ assert !$AFTER_PAUSED_CALLED
508+
509+ t = Thread . start { sleep ( 1 ) ; Process . kill ( 'CONT' , @worker . pid ) }
510+
511+ @worker . work ( 0 )
512+
513+ t . join
514+
515+ assert $AFTER_PAUSED_CALLED
516+ assert_equal @worker , $CAPTURED_WORKER
517+ end
518+
473519 if !defined? ( RUBY_ENGINE ) || defined? ( RUBY_ENGINE ) && RUBY_ENGINE != "jruby"
474520 [ SignalException , Resque ::TermException ] . each do |exception |
475521 {
0 commit comments