13
13
14
14
namespace Tests ;
15
15
16
- use Closure ;
17
16
use CodeIgniter \I18n \Time ;
18
17
use CodeIgniter \Queue \Entities \QueueJob ;
19
18
use CodeIgniter \Queue \Enums \Status ;
@@ -36,22 +35,12 @@ final class DatabaseHandlerTest extends TestCase
36
35
37
36
protected $ seed = TestDatabaseQueueSeeder::class;
38
37
private QueueConfig $ config ;
39
- private Closure $ field ;
40
38
41
39
protected function setUp (): void
42
40
{
43
41
parent ::setUp ();
44
42
45
43
$ this ->config = config (QueueConfig::class);
46
-
47
- // handle filed custom type conversion for SQLSRV
48
- $ this ->field = function ($ field ) {
49
- if ($ this ->db ->DBDriver === 'SQLSRV ' ) {
50
- return "CONVERT(VARCHAR, {$ field }) " ;
51
- }
52
-
53
- return $ field ;
54
- };
55
44
}
56
45
57
46
public function testDatabaseHandler (): void
@@ -97,10 +86,10 @@ public function testPush(): void
97
86
$ result = $ handler ->push ('queue ' , 'success ' , ['key ' => 'value ' ]);
98
87
99
88
$ this ->assertTrue ($ result );
100
- $ this ->seeInDatabase ('queue_jobs ' , [
101
- 'queue ' => 'queue ' ,
102
- ( $ this ->field ) ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key ' => 'value ' ]]),
103
- 'available_at ' => '1703859316 ' ,
89
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
90
+ 'queue ' => 'queue ' ,
91
+ $ this ->field ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key ' => 'value ' ]]),
92
+ 'available_at ' => '1703859316 ' ,
104
93
]);
105
94
}
106
95
@@ -115,11 +104,11 @@ public function testPushWithPriority(): void
115
104
$ result = $ handler ->setPriority ('high ' )->push ('queue ' , 'success ' , ['key ' => 'value ' ]);
116
105
117
106
$ this ->assertTrue ($ result );
118
- $ this ->seeInDatabase ('queue_jobs ' , [
119
- 'queue ' => 'queue ' ,
120
- ( $ this ->field ) ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key ' => 'value ' ]]),
121
- 'priority ' => 'high ' ,
122
- 'available_at ' => '1703859316 ' ,
107
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
108
+ 'queue ' => 'queue ' ,
109
+ $ this ->field ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key ' => 'value ' ]]),
110
+ 'priority ' => 'high ' ,
111
+ 'available_at ' => '1703859316 ' ,
123
112
]);
124
113
}
125
114
@@ -131,21 +120,21 @@ public function testPushAndPopWithPriority(): void
131
120
$ result = $ handler ->push ('queue ' , 'success ' , ['key1 ' => 'value1 ' ]);
132
121
133
122
$ this ->assertTrue ($ result );
134
- $ this ->seeInDatabase ('queue_jobs ' , [
135
- 'queue ' => 'queue ' ,
136
- ( $ this ->field ) ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key1 ' => 'value1 ' ]]),
137
- 'priority ' => 'low ' ,
138
- 'available_at ' => '1703859316 ' ,
123
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
124
+ 'queue ' => 'queue ' ,
125
+ $ this ->field ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key1 ' => 'value1 ' ]]),
126
+ 'priority ' => 'low ' ,
127
+ 'available_at ' => '1703859316 ' ,
139
128
]);
140
129
141
130
$ result = $ handler ->setPriority ('high ' )->push ('queue ' , 'success ' , ['key2 ' => 'value2 ' ]);
142
131
143
132
$ this ->assertTrue ($ result );
144
- $ this ->seeInDatabase ('queue_jobs ' , [
145
- 'queue ' => 'queue ' ,
146
- ( $ this ->field ) ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key2 ' => 'value2 ' ]]),
147
- 'priority ' => 'high ' ,
148
- 'available_at ' => '1703859316 ' ,
133
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
134
+ 'queue ' => 'queue ' ,
135
+ $ this ->field ('payload ' ) => json_encode (['job ' => 'success ' , 'data ' => ['key2 ' => 'value2 ' ]]),
136
+ 'priority ' => 'high ' ,
137
+ 'available_at ' => '1703859316 ' ,
149
138
]);
150
139
151
140
$ result = $ handler ->pop ('queue ' , ['high ' , 'low ' ]);
@@ -216,7 +205,7 @@ public function testPop(): void
216
205
$ result = $ handler ->pop ('queue1 ' , ['default ' ]);
217
206
218
207
$ this ->assertInstanceOf (QueueJob::class, $ result );
219
- $ this ->seeInDatabase ('queue_jobs ' , [
208
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
220
209
'status ' => Status::RESERVED ->value ,
221
210
'available_at ' => 1_697_269_860 ,
222
211
]);
@@ -243,15 +232,15 @@ public function testLater(): void
243
232
$ handler = new DatabaseHandler ($ this ->config );
244
233
$ queueJob = $ handler ->pop ('queue1 ' , ['default ' ]);
245
234
246
- $ this ->seeInDatabase ('queue_jobs ' , [
235
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
247
236
'id ' => 2 ,
248
237
'status ' => Status::RESERVED ->value ,
249
238
]);
250
239
251
240
$ result = $ handler ->later ($ queueJob , 60 );
252
241
253
242
$ this ->assertTrue ($ result );
254
- $ this ->seeInDatabase ('queue_jobs ' , [
243
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
255
244
'id ' => 2 ,
256
245
'status ' => Status::PENDING ->value ,
257
246
'available_at ' => Time::now ()->addSeconds (60 )->timestamp ,
@@ -275,7 +264,7 @@ public function testFailedAndKeepJob(): void
275
264
$ this ->dontSeeInDatabase ('queue_jobs ' , [
276
265
'id ' => 2 ,
277
266
]);
278
- $ this ->seeInDatabase ('queue_jobs_failed ' , [
267
+ $ this ->seeInDatabaseExtended ('queue_jobs_failed ' , [
279
268
'id ' => 2 ,
280
269
'connection ' => 'database ' ,
281
270
'queue ' => 'queue1 ' ,
@@ -313,7 +302,7 @@ public function testDoneAndKeepJob(): void
313
302
$ result = $ handler ->done ($ queueJob , true );
314
303
315
304
$ this ->assertTrue ($ result );
316
- $ this ->seeInDatabase ('queue_jobs ' , [
305
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
317
306
'id ' => 2 ,
318
307
'status ' => Status::DONE ->value ,
319
308
]);
@@ -357,10 +346,10 @@ public function testRetry(): void
357
346
358
347
$ this ->assertSame ($ count , 1 );
359
348
360
- $ this ->seeInDatabase ('queue_jobs ' , [
361
- 'id ' => 3 ,
362
- 'queue ' => 'queue1 ' ,
363
- ( $ this ->field ) ('payload ' ) => json_encode (['job ' => 'failure ' , 'data ' => []]),
349
+ $ this ->seeInDatabaseExtended ('queue_jobs ' , [
350
+ 'id ' => 3 ,
351
+ 'queue ' => 'queue1 ' ,
352
+ $ this ->field ('payload ' ) => json_encode (['job ' => 'failure ' , 'data ' => []]),
364
353
]);
365
354
$ this ->dontSeeInDatabase ('queue_jobs_failed ' , [
366
355
'id ' => 1 ,
@@ -407,7 +396,7 @@ public function testFlush(): void
407
396
$ this ->dontSeeInDatabase ('queue_jobs_failed ' , [
408
397
'id ' => 1 ,
409
398
]);
410
- $ this ->seeInDatabase ('queue_jobs_failed ' , [
399
+ $ this ->seeInDatabaseExtended ('queue_jobs_failed ' , [
411
400
'id ' => 2 ,
412
401
]);
413
402
}
0 commit comments