1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Add tests for new client instances

This commit is contained in:
Mike Perham 2013-10-25 21:07:54 -07:00
parent fef6dac26c
commit e63a9d8863
3 changed files with 34 additions and 12 deletions

View file

@ -64,6 +64,10 @@ module Sidekiq
include Enumerable
attr_reader :entries
def initialize_copy(copy)
copy.instance_variable_set(:@entries, entries.dup)
end
def each(&block)
entries.each(&block)
end

View file

@ -46,7 +46,30 @@ class TestClient < Sidekiq::Test
assert_raises ArgumentError do
Sidekiq::Client.push('queue' => 'foo', 'class' => MyWorker, 'args' => 1)
end
end
describe 'as instance' do
it 'can push' do
@redis.expect :lpush, 1, ['queue:default', Array]
client = Sidekiq::Client.new
jid = client.push('class' => 'Blah', 'args' => [1,2,3])
assert_equal 24, jid.size
end
it 'allows local middleware modification' do
@redis.expect :lpush, 1, ['queue:default', Array]
$called = false
mware = Class.new { def call(worker_klass,msg,q); $called = true; msg;end }
client = Sidekiq::Client.new
client.middleware do |chain|
chain.add mware
end
client.push('class' => 'Blah', 'args' => [1,2,3])
assert $called
assert client.middleware.exists?(mware)
refute Sidekiq.client_middleware.exists?(mware)
end
end
it 'pushes messages to redis' do
@ -136,12 +159,7 @@ class TestClient < Sidekiq::Test
it 'retrieves queues' do
@redis.expect :smembers, ['bob'], ['queues']
assert_equal ['bob'], Sidekiq::Client.registered_queues
end
it 'retrieves workers' do
@redis.expect :smembers, ['bob'], ['workers']
assert_equal ['bob'], Sidekiq::Client.registered_workers
assert_equal ['bob'], Sidekiq::Queue.all.map(&:name)
end
end

View file

@ -22,18 +22,18 @@ class TestExtensions < Sidekiq::Test
end
it 'allows delayed execution of ActiveRecord class methods' do
assert_equal [], Sidekiq::Client.registered_queues
assert_equal [], Sidekiq::Queue.all.map(&:name)
assert_equal 0, Sidekiq.redis {|c| c.llen('queue:default') }
MyModel.delay.long_class_method
assert_equal ['default'], Sidekiq::Client.registered_queues
assert_equal ['default'], Sidekiq::Queue.all.map(&:name)
assert_equal 1, Sidekiq.redis {|c| c.llen('queue:default') }
end
it 'uses and stringifies specified options' do
assert_equal [], Sidekiq::Client.registered_queues
assert_equal [], Sidekiq::Queue.all.map(&:name)
assert_equal 0, Sidekiq.redis {|c| c.llen('queue:notdefault') }
MyModel.delay(queue: :notdefault).long_class_method
assert_equal ['notdefault'], Sidekiq::Client.registered_queues
assert_equal ['notdefault'], Sidekiq::Queue.all.map(&:name)
assert_equal 1, Sidekiq.redis {|c| c.llen('queue:notdefault') }
end
@ -56,10 +56,10 @@ class TestExtensions < Sidekiq::Test
end
it 'allows delayed delivery of ActionMailer mails' do
assert_equal [], Sidekiq::Client.registered_queues
assert_equal [], Sidekiq::Queue.all.map(&:name)
assert_equal 0, Sidekiq.redis {|c| c.llen('queue:default') }
UserMailer.delay.greetings(1, 2)
assert_equal ['default'], Sidekiq::Client.registered_queues
assert_equal ['default'], Sidekiq::Queue.all.map(&:name)
assert_equal 1, Sidekiq.redis {|c| c.llen('queue:default') }
end