module ResqueUnit::SchedulerAssertions
Public Instance Methods
assert_not_queued_at(expected_timestamp, klass, args = nil, message = nil)
click to toggle source
opposite of assert_queued_at
# File lib/resque_unit/scheduler_assertions.rb, line 28 def assert_not_queued_at(expected_timestamp, klass, args = nil, message = nil) queue = Resque.queue_for(klass) assert !in_timestamped_queue?(queue, expected_timestamp, klass, args), (message || "#{klass} should not have been queued in #{queue} before #{expected_timestamp}.") end
assert_not_queued_in(expected_time_difference, klass, args = nil, message = nil)
click to toggle source
opposite of assert_queued_in
# File lib/resque_unit/scheduler_assertions.rb, line 35 def assert_not_queued_in(expected_time_difference, klass, args = nil, message = nil) assert_not_queued_at(Time.now + expected_time_difference, klass, args, message) end
assert_queued_at(expected_timestamp, klass, args = nil, message = nil)
click to toggle source
Asserts that klass
has been queued into its appropriate queue at least once, with a timestamp
less than or equal to expected_timestamp
. If the job wasn’t queued with a timestamp, the assertion fails.. If args
is nil, it only asserts that the klass has been queued. Otherwise, it asserts that the klass has been queued with the correct arguments. Pass an empty array for args
if you want to assert that klass has been queued without arguments.
# File lib/resque_unit/scheduler_assertions.rb, line 15 def assert_queued_at(expected_timestamp, klass, args = nil, message = nil) queue = Resque.queue_for(klass) assert in_timestamped_queue?(queue, expected_timestamp, klass, args), (message || "#{klass} should have been queued in #{queue} before #{expected_timestamp}: #{Resque.queue(queue).inspect}.") end
assert_queued_in(expected_time_difference, klass, args = nil, message = nil)
click to toggle source
Similar to assert_queued_at
, except it takes an expected time difference (in seconds) instead of a timestamp.
# File lib/resque_unit/scheduler_assertions.rb, line 23 def assert_queued_in(expected_time_difference, klass, args = nil, message = nil) assert_queued_at(Time.now + expected_time_difference, klass, args, message) end
Private Instance Methods
in_timestamped_queue?(queue_name, expected_timestamp, klass, args = nil)
click to toggle source
# File lib/resque_unit/scheduler_assertions.rb, line 41 def in_timestamped_queue?(queue_name, expected_timestamp, klass, args = nil) # check if we have any matching jobs with a timestamp less than # expected_timestamp !matching_jobs(Resque.all(queue_name), klass, args).select {|e| e["timestamp"] && Time.parse(e["timestamp"]) <= expected_timestamp}.empty? end