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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# frozen_string_literal: true
require "helper"
require "jobs/hello_job"
require "jobs/logging_job"
require "jobs/nested_job"
class QueueNamingTest < ActiveSupport::TestCase
test "name derived from base" do
assert_equal "default", HelloJob.new.queue_name
end
test "uses given queue name job" do
original_queue_name = HelloJob.queue_name
begin
HelloJob.queue_as :greetings
assert_equal "greetings", HelloJob.new.queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test "allows a blank queue name" do
original_queue_name = HelloJob.queue_name
begin
HelloJob.queue_as ""
assert_equal "", HelloJob.new.queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test "does not use a nil queue name" do
original_queue_name = HelloJob.queue_name
begin
HelloJob.queue_as nil
assert_equal "default", HelloJob.new.queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test "evals block given to queue_as to determine queue" do
original_queue_name = HelloJob.queue_name
begin
HelloJob.queue_as { :another }
assert_equal "another", HelloJob.new.queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test "can use arguments to determine queue_name in queue_as block" do
original_queue_name = HelloJob.queue_name
begin
HelloJob.queue_as { arguments.first == "1" ? :one : :two }
assert_equal "one", HelloJob.new("1").queue_name
assert_equal "two", HelloJob.new("3").queue_name
ensure
HelloJob.queue_name = original_queue_name
end
end
test "queue_name_prefix prepended to the queue name with default delimiter" do
original_queue_name_prefix = ActiveJob::Base.queue_name_prefix
original_queue_name = HelloJob.queue_name
begin
ActiveJob::Base.queue_name_prefix = "aj"
HelloJob.queue_as :low
assert_equal "aj_low", HelloJob.queue_name
ensure
ActiveJob::Base.queue_name_prefix = original_queue_name_prefix
HelloJob.queue_name = original_queue_name
end
end
test "queue_name_prefix prepended to the queue name with custom delimiter" do
original_queue_name_prefix = ActiveJob::Base.queue_name_prefix
original_queue_name_delimiter = ActiveJob::Base.queue_name_delimiter
original_queue_name = HelloJob.queue_name
begin
ActiveJob::Base.queue_name_delimiter = "."
ActiveJob::Base.queue_name_prefix = "aj"
HelloJob.queue_as :low
assert_equal "aj.low", HelloJob.queue_name
ensure
ActiveJob::Base.queue_name_prefix = original_queue_name_prefix
ActiveJob::Base.queue_name_delimiter = original_queue_name_delimiter
HelloJob.queue_name = original_queue_name
end
end
test "using a custom default_queue_name" do
original_default_queue_name = ActiveJob::Base.default_queue_name
begin
ActiveJob::Base.default_queue_name = "default_queue_name"
assert_equal "default_queue_name", HelloJob.new.queue_name
ensure
ActiveJob::Base.default_queue_name = original_default_queue_name
end
end
test "queue_name_prefix prepended to the default_queue_name" do
original_queue_name_prefix = ActiveJob::Base.queue_name_prefix
original_default_queue_name = ActiveJob::Base.default_queue_name
begin
ActiveJob::Base.queue_name_prefix = "prefix"
ActiveJob::Base.default_queue_name = "default_queue_name"
assert_equal "prefix_default_queue_name", HelloJob.new.queue_name
ensure
ActiveJob::Base.queue_name_prefix = original_queue_name_prefix
ActiveJob::Base.default_queue_name = original_default_queue_name
end
end
test "uses queue passed to #set" do
job = HelloJob.set(queue: :some_queue).perform_later
assert_equal "some_queue", job.queue_name
end
end
|