blob: fb3fdc392f46482523a5780ab53327cf1f8036db (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
require 'helper'
module ActiveJob
module QueueAdapters
class StubOneAdapter
def enqueue(*); end
def enqueue_at(*); end
end
class StubTwoAdapter
def enqueue(*); end
def enqueue_at(*); end
end
end
end
class QueueAdapterTest < ActiveJob::TestCase
test 'should forbid nonsense arguments' do
assert_raises(ArgumentError) { ActiveJob::Base.queue_adapter = Mutex }
assert_raises(ArgumentError) { ActiveJob::Base.queue_adapter = Mutex.new }
end
test 'should warn on passing an adapter class' do
klass = Class.new do
def self.name
'fake'
end
def enqueue(*); end
def enqueue_at(*); end
end
assert_deprecated { ActiveJob::Base.queue_adapter = klass }
end
test 'should allow overriding the queue_adapter at the child class level without affecting the parent or its sibling' do
base_queue_adapter = ActiveJob::Base.queue_adapter
child_job_one = Class.new(ActiveJob::Base)
child_job_one.queue_adapter = :stub_one
assert_not_equal ActiveJob::Base.queue_adapter, child_job_one.queue_adapter
assert_kind_of ActiveJob::QueueAdapters::StubOneAdapter, child_job_one.queue_adapter
child_job_two = Class.new(ActiveJob::Base)
child_job_two.queue_adapter = :stub_two
assert_kind_of ActiveJob::QueueAdapters::StubTwoAdapter, child_job_two.queue_adapter
assert_kind_of ActiveJob::QueueAdapters::StubOneAdapter, child_job_one.queue_adapter, "child_job_one's queue adapter should remain unchanged"
assert_equal base_queue_adapter, ActiveJob::Base.queue_adapter, "ActiveJob::Base's queue adapter should remain unchanged"
child_job_three = Class.new(ActiveJob::Base)
assert_not_nil child_job_three.queue_adapter
end
end
|