9
9
class Resque_Tests_EventTest extends Resque_Tests_TestCase
10
10
{
11
11
private $ callbacksHit = array ();
12
-
12
+
13
13
public function setUp ()
14
14
{
15
15
Test_Job::$ called = false ;
16
-
16
+
17
17
// Register a worker to test with
18
18
$ this ->worker = new Resque_Worker ('jobs ' );
19
19
$ this ->worker ->setLogger (new Resque_Log ());
@@ -38,7 +38,7 @@ public function getEventTestJob()
38
38
$ job ->worker = $ this ->worker ;
39
39
return $ job ;
40
40
}
41
-
41
+
42
42
public function eventCallbackProvider ()
43
43
{
44
44
return array (
@@ -47,7 +47,7 @@ public function eventCallbackProvider()
47
47
array ('afterFork ' , 'afterForkEventCallback ' ),
48
48
);
49
49
}
50
-
50
+
51
51
/**
52
52
* @dataProvider eventCallbackProvider
53
53
*/
@@ -58,10 +58,10 @@ public function testEventCallbacksFire($event, $callback)
58
58
$ job = $ this ->getEventTestJob ();
59
59
$ this ->worker ->perform ($ job );
60
60
$ this ->worker ->work (0 );
61
-
61
+
62
62
$ this ->assertContains ($ callback , $ this ->callbacksHit , $ event . ' callback ( ' . $ callback .') was not called ' );
63
63
}
64
-
64
+
65
65
public function testBeforeForkEventCallbackFires ()
66
66
{
67
67
$ event = 'beforeFork ' ;
@@ -76,6 +76,18 @@ public function testBeforeForkEventCallbackFires()
76
76
$ this ->assertContains ($ callback , $ this ->callbacksHit , $ event . ' callback ( ' . $ callback .') was not called ' );
77
77
}
78
78
79
+ public function testBeforeEnqueueEventCallbackFires ()
80
+ {
81
+ $ event = 'beforeEnqueue ' ;
82
+ $ callback = 'beforeEnqueueEventCallback ' ;
83
+
84
+ Resque_Event::listen ($ event , array ($ this , $ callback ));
85
+ Resque::enqueue ('jobs ' , 'Test_Job ' , array (
86
+ 'somevar '
87
+ ));
88
+ $ this ->assertContains ($ callback , $ this ->callbacksHit , $ event . ' callback ( ' . $ callback .') was not called ' );
89
+ }
90
+
79
91
public function testBeforePerformEventCanStopWork ()
80
92
{
81
93
$ callback = 'beforePerformEventDontPerformCallback ' ;
@@ -87,23 +99,34 @@ public function testBeforePerformEventCanStopWork()
87
99
$ this ->assertContains ($ callback , $ this ->callbacksHit , $ callback . ' callback was not called ' );
88
100
$ this ->assertFalse (Test_Job::$ called , 'Job was still performed though Resque_Job_DontPerform was thrown ' );
89
101
}
90
-
102
+
103
+ public function testBeforeEnqueueEventStopsJobCreation ()
104
+ {
105
+ $ callback = 'beforeEnqueueEventDontCreateCallback ' ;
106
+ Resque_Event::listen ('beforeEnqueue ' , array ($ this , $ callback ));
107
+ Resque_Event::listen ('afterEnqueue ' , array ($ this , 'afterEnqueueEventCallback ' ));
108
+
109
+ Resque::enqueue ('test_job ' , 'TestClass ' );
110
+ $ this ->assertContains ($ callback , $ this ->callbacksHit , $ callback . ' callback was not called ' );
111
+ $ this ->assertNotContains ('afterEnqueueEventCallback ' , $ this ->callbacksHit , 'afterEnqueue was still called, even though it should not have been ' );
112
+ }
113
+
91
114
public function testAfterEnqueueEventCallbackFires ()
92
115
{
93
116
$ callback = 'afterEnqueueEventCallback ' ;
94
- $ event = 'afterEnqueue ' ;
95
-
117
+ $ event = 'afterEnqueue ' ;
118
+
96
119
Resque_Event::listen ($ event , array ($ this , $ callback ));
97
120
Resque::enqueue ('jobs ' , 'Test_Job ' , array (
98
121
'somevar '
99
- ));
122
+ ));
100
123
$ this ->assertContains ($ callback , $ this ->callbacksHit , $ event . ' callback ( ' . $ callback .') was not called ' );
101
124
}
102
125
103
126
public function testStopListeningRemovesListener ()
104
127
{
105
128
$ callback = 'beforePerformEventCallback ' ;
106
- $ event = 'beforePerform ' ;
129
+ $ event = 'beforePerform ' ;
107
130
108
131
Resque_Event::listen ($ event , array ($ this , $ callback ));
109
132
Resque_Event::stopListening ($ event , array ($ this , $ callback ));
@@ -112,18 +135,23 @@ public function testStopListeningRemovesListener()
112
135
$ this ->worker ->perform ($ job );
113
136
$ this ->worker ->work (0 );
114
137
115
- $ this ->assertNotContains ($ callback , $ this ->callbacksHit ,
138
+ $ this ->assertNotContains ($ callback , $ this ->callbacksHit ,
116
139
$ event . ' callback ( ' . $ callback .') was called though Resque_Event::stopListening was called '
117
140
);
118
141
}
119
142
120
-
121
143
public function beforePerformEventDontPerformCallback ($ instance )
122
144
{
123
145
$ this ->callbacksHit [] = __FUNCTION__ ;
124
146
throw new Resque_Job_DontPerform ;
125
147
}
126
-
148
+
149
+ public function beforeEnqueueEventDontCreateCallback ($ queue , $ class , $ args , $ track = false )
150
+ {
151
+ $ this ->callbacksHit [] = __FUNCTION__ ;
152
+ throw new Resque_Job_DontCreate ;
153
+ }
154
+
127
155
public function assertValidEventCallback ($ function , $ job )
128
156
{
129
157
$ this ->callbacksHit [] = $ function ;
@@ -133,7 +161,7 @@ public function assertValidEventCallback($function, $job)
133
161
$ args = $ job ->getArguments ();
134
162
$ this ->assertEquals ($ args [0 ], 'somevar ' );
135
163
}
136
-
164
+
137
165
public function afterEnqueueEventCallback ($ class , $ args )
138
166
{
139
167
$ this ->callbacksHit [] = __FUNCTION__ ;
@@ -142,12 +170,17 @@ public function afterEnqueueEventCallback($class, $args)
142
170
'somevar ' ,
143
171
), $ args );
144
172
}
145
-
173
+
174
+ public function beforeEnqueueEventCallback ($ job )
175
+ {
176
+ $ this ->callbacksHit [] = __FUNCTION__ ;
177
+ }
178
+
146
179
public function beforePerformEventCallback ($ job )
147
180
{
148
181
$ this ->assertValidEventCallback (__FUNCTION__ , $ job );
149
182
}
150
-
183
+
151
184
public function afterPerformEventCallback ($ job )
152
185
{
153
186
$ this ->assertValidEventCallback (__FUNCTION__ , $ job );
@@ -157,7 +190,7 @@ public function beforeForkEventCallback($job)
157
190
{
158
191
$ this ->assertValidEventCallback (__FUNCTION__ , $ job );
159
192
}
160
-
193
+
161
194
public function afterForkEventCallback ($ job )
162
195
{
163
196
$ this ->assertValidEventCallback (__FUNCTION__ , $ job );
0 commit comments