Skip to content

Commit 5667cf3

Browse files
authored
Merge pull request #38 from T0mats0/EndToEndJobTest
End-to-end test for queue
2 parents c566064 + 7b22e24 commit 5667cf3

File tree

3 files changed

+46
-2
lines changed

3 files changed

+46
-2
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"require-dev": {
2626
"cakephp/cakephp-codesniffer": "^4.0",
2727
"phpunit/phpunit": "^8.5 || ^9.3",
28-
"cakephp/bake": "^2.0"
28+
"cakephp/bake": "^2.0",
29+
"enqueue/fs": "^0.9"
2930
},
3031
"autoload": {
3132
"psr-4": {

tests/TestCase/Command/WorkerCommandTest.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818

1919
use Cake\Core\Configure;
2020
use Cake\Log\Log;
21+
use Cake\Queue\QueueManager;
2122
use Cake\TestSuite\ConsoleIntegrationTestTrait;
2223
use Cake\TestSuite\TestCase;
24+
use TestApp\WelcomeMailer;
2325
use TestApp\WelcomeMailerListener;
2426

2527
/**
@@ -149,4 +151,43 @@ public function testQueueProcessesWithLogger()
149151
$this->assertNotEmpty($log->read());
150152
$this->assertEquals($log->read()[0], 'debug Max Iterations: 0');
151153
}
154+
155+
/**
156+
* Start up the worker queue, push a job, and see that it processes
157+
*
158+
* @runInSeparateProcess
159+
*/
160+
public function testQueueProcessesJob()
161+
{
162+
Configure::write([
163+
'Queue' => [
164+
'default' => [
165+
'queue' => 'default',
166+
'url' => 'file:///' . TMP . DS . 'queue',
167+
],
168+
],
169+
]);
170+
171+
Log::setConfig('debug', [
172+
'className' => 'Array',
173+
'levels' => ['notice', 'info', 'debug'],
174+
]);
175+
176+
$this->exec('worker --max-runtime=3 --logger=debug --verbose');
177+
178+
$callable = [WelcomeMailer::class, 'welcome'];
179+
$arguments = [];
180+
$options = ['config' => 'default'];
181+
182+
QueueManager::push($callable, $arguments, $options);
183+
184+
$log = Log::engine('debug');
185+
$this->assertIsArray($log->read());
186+
$this->assertNotEmpty($log->read());
187+
foreach ($log->read() as $line) {
188+
if (stripos($line, 'Welcome mail sent') !== false) {
189+
$this->assertTrue(true);
190+
}
191+
}
192+
}
152193
}

tests/app/TestApp/WelcomeMailer.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace TestApp;
55

6+
use Cake\Log\Log;
67
use Cake\Mailer\Mailer;
78
use Cake\Queue\Mailer\QueueTrait;
89

@@ -16,6 +17,7 @@ public function getName()
1617

1718
public function welcome()
1819
{
19-
// Do nothing.
20+
$debug = Log::engine('debug');
21+
$debug->info('Welcome mail sent');
2022
}
2123
}

0 commit comments

Comments
 (0)