test/scheduler_hooks_test.rb in resque-scheduler-2.0.0.g vs test/scheduler_hooks_test.rb in resque-scheduler-2.0.0.h
- old
+ new
@@ -1,52 +1,23 @@
require File.dirname(__FILE__) + '/test_helper'
context "scheduling jobs with hooks" do
- class JobThatCannotBeScheduledWithoutArguments < Resque::Job
- @queue = :job_that_cannot_be_scheduled_without_arguments
- def self.perform(*x);end
- def self.before_schedule_return_nil_if_arguments_not_supplied(*args)
- counters[:before_schedule] += 1
- return false if args.empty?
- end
-
- def self.after_schedule_do_something(*args)
- counters[:after_schedule] += 1
- end
-
- class << self
- def counters
- @counters ||= Hash.new{|h,k| h[k]=0}
- end
- def clean
- counters.clear
- self
- end
- end
- end
-
setup do
- Resque::Scheduler.dynamic = false
- Resque.redis.del(:schedules)
- Resque.redis.del(:schedules_changed)
- Resque::Scheduler.mute = true
- Resque::Scheduler.clear_schedule!
- Resque::Scheduler.send(:class_variable_set, :@@scheduled_jobs, {})
+ Resque.redis.flushall
end
- test "before_schedule hook that does not return false should not block" do
- enqueue_time = Time.now + 12
- Resque.enqueue_at(enqueue_time, JobThatCannotBeScheduledWithoutArguments.clean, :foo)
- assert_equal(1, Resque.delayed_timestamp_size(enqueue_time.to_i), "delayed queue should have one entry now")
- assert_equal(1, JobThatCannotBeScheduledWithoutArguments.counters[:before_schedule], 'before_schedule was not run')
- assert_equal(1, JobThatCannotBeScheduledWithoutArguments.counters[:after_schedule], 'after_schedule was not run')
+ test "before_schedule hook that does not return false should be enqueued" do
+ enqueue_time = Time.now
+ SomeRealClass.expects(:before_schedule_example).with(:foo)
+ SomeRealClass.expects(:after_schedule_example).with(:foo)
+ Resque.enqueue_at(enqueue_time.to_i, SomeRealClass, :foo)
+ assert_equal(1, Resque.delayed_timestamp_size(enqueue_time.to_i), "job should be enqueued")
end
- test "before_schedule hook that returns false should block" do
- enqueue_time = Time.now + 60
- assert_equal(0, JobThatCannotBeScheduledWithoutArguments.clean.counters[:before_schedule], 'before_schedule should be zero')
- Resque.enqueue_at(enqueue_time, JobThatCannotBeScheduledWithoutArguments.clean)
- assert_equal(0, Resque.delayed_timestamp_size(enqueue_time.to_i), "job should not have been put in queue")
- assert_equal(1, JobThatCannotBeScheduledWithoutArguments.counters[:before_schedule], 'before_schedule was not run')
- assert_equal(0, JobThatCannotBeScheduledWithoutArguments.counters[:after_schedule], 'after_schedule was run')
+ test "before_schedule hook that returns false should not be enqueued" do
+ enqueue_time = Time.now
+ SomeRealClass.expects(:before_schedule_example).with(:foo).returns(false)
+ SomeRealClass.expects(:after_schedule_example).never
+ Resque.enqueue_at(enqueue_time.to_i, SomeRealClass, :foo)
+ assert_equal(0, Resque.delayed_timestamp_size(enqueue_time.to_i), "job should not be enqueued")
end
end