Sha256: 2c3fab8bfe4bb5ec3da999890060977aa6b9ecd0e30eeb23f8535c24f8a59ac3

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

require File.dirname(__FILE__) + '/../test_helper'

class ResqueTest < Test::Unit::TestCase

  context "Resque" do
    setup do
      Resque.redis.flush_all
      assert_nil Resque.redis.get(OneHourThrottledJob.key)
      @bogus_args = [1, 2]
    end

    context "#enqueue" do
      should "add a throttled job key to the set with the proper TTL (Expire)" do
        Resque.expects(:enqueue_without_throttle).returns(true) 
        assert Resque.enqueue(OneHourThrottledJob, @bogus_args)
        assert Resque.redis.get(OneHourThrottledJob.key)
        assert_equal 3600, Resque.redis.ttl(OneHourThrottledJob.key)
      end
      
      context "job has not reached throttle limit" do
        should "not add another job to the queue and raise a throttled exception" do
          Resque.expects(:enqueue_without_throttle).once
          assert_raises(Resque::ThrottledError) { 2.times { Resque.enqueue(OneHourThrottledJob, @bogus_args) } }
        end
      end

      should "enqueue a job without throttling if the job is disabled" do
        Resque.expects(:enqueue_without_throttle).twice
        2.times { Resque.enqueue(DisabledThrottledJob, @bogus_args) }
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
resque-throttle-0.2.9 test/resque/resque_test.rb
resque-throttle-0.2.8 test/resque/resque_test.rb
resque-throttle-0.2.7 test/resque/resque_test.rb
resque-throttle-0.2.6 test/resque/resque_test.rb
resque-throttle-0.2.4 test/resque/resque_test.rb
resque-throttle-0.2.3 test/resque/resque_test.rb