7
7
Resque . before_first_fork = nil
8
8
Resque . before_fork = nil
9
9
Resque . after_fork = nil
10
+ Resque . before_perform = nil
11
+ Resque . after_perform = nil
10
12
11
13
@worker = Resque ::Worker . new ( :jobs )
12
14
@@ -23,6 +25,8 @@ def self.perform
23
25
assert_equal [ ] , Resque . before_first_fork
24
26
assert_equal [ ] , Resque . before_fork
25
27
assert_equal [ ] , Resque . after_fork
28
+ assert_equal [ ] , Resque . before_perform
29
+ assert_equal [ ] , Resque . after_perform
26
30
end
27
31
28
32
it 'calls before_first_fork once' do
@@ -47,6 +51,17 @@ def self.perform
47
51
assert_equal ( @worker . will_fork? ? 2 : 0 , counter )
48
52
end
49
53
54
+ it 'calls before_perform before each job' do
55
+ counter = 0
56
+
57
+ Resque . before_perform { counter += 1 }
58
+ 2 . times { Resque ::Job . create ( :jobs , CallNotifyJob ) }
59
+
60
+ assert_equal ( 0 , counter )
61
+ @worker . work ( 0 )
62
+ assert_equal ( 2 , counter )
63
+ end
64
+
50
65
it 'calls after_fork after each job if forking' do
51
66
counter = 0
52
67
@@ -58,6 +73,17 @@ def self.perform
58
73
assert_equal ( @worker . will_fork? ? 2 : 0 , counter )
59
74
end
60
75
76
+ it 'calls after_perform after each job' do
77
+ counter = 0
78
+
79
+ Resque . after_perform { counter += 1 }
80
+ 2 . times { Resque ::Job . create ( :jobs , CallNotifyJob ) }
81
+
82
+ assert_equal ( 0 , counter )
83
+ @worker . work ( 0 )
84
+ assert_equal ( 2 , counter )
85
+ end
86
+
61
87
it 'calls before_first_fork before forking' do
62
88
Resque . before_first_fork { assert ( !$called) }
63
89
@@ -163,4 +189,31 @@ def self.perform
163
189
164
190
assert ( first && second )
165
191
end
192
+
193
+ it 'registers multiple before_perform' do
194
+ first = false
195
+ second = false
196
+
197
+ Resque . before_perform { first = true }
198
+ Resque . before_perform { second = true }
199
+ Resque ::Job . create ( :jobs , CallNotifyJob )
200
+
201
+ assert ( !first && !second )
202
+ @worker . work ( 0 )
203
+ assert ( first && second )
204
+ end
205
+
206
+ it 'registers multiple after_perform' do
207
+ first = false
208
+ second = false
209
+
210
+ Resque . after_perform { first = true }
211
+ Resque . after_perform { second = true }
212
+ Resque ::Job . create ( :jobs , CallNotifyJob )
213
+
214
+ assert ( !first && !second )
215
+ @worker . work ( 0 )
216
+ assert ( first && second )
217
+ end
218
+
166
219
end
0 commit comments