module ResqueUnitWithoutMock::ResqueAssertions

Public Instance Methods

assert_not_queued(klass, args = nil, &block) click to toggle source
# File lib/resque_unit_without_mock/resque_assertions.rb, line 13
def assert_not_queued(klass, args = nil, &block)
  queue_name = Resque.queue_for(klass)
  queue = Resque.queued(queue_name).map{|x| JSON.parse(x) }
  assert(
    !in_queue?(queue, klass, args),
    "#{klass}#{args ? " with #{args.inspect}" : ""} should not have been queued in #{queue_name}.",
  )
end
assert_queued(klass, args = nil, &block) click to toggle source
# File lib/resque_unit_without_mock/resque_assertions.rb, line 4
def assert_queued(klass, args = nil, &block)
  queue_name = Resque.queue_for(klass)
  queue = Resque.queued(queue_name).map{|x| JSON.parse(x) }
  assert(
    in_queue?(queue, klass, args),
    "#{klass}#{args ? " with #{args.inspect}" : ""} should have been queued in #{queue_name}: #{queue.inspect}.",
  )
end

Private Instance Methods

in_queue?(queue, klass, args = nil) click to toggle source
# File lib/resque_unit_without_mock/resque_assertions.rb, line 24
def in_queue?(queue, klass, args = nil)
  !matching_jobs(queue, klass, args).empty?
end
matching_jobs(queue, klass, args = nil) click to toggle source
# File lib/resque_unit_without_mock/resque_assertions.rb, line 28
def matching_jobs(queue, klass, args = nil)
  normalized_args = Resque.decode(Resque.encode(args)) if args
  queue.select {|e| e["class"] == klass.to_s && (!args || e["args"] == normalized_args )}
end