public function testQueueCompleteEventHandler() { $files = ['task401', 'task402']; $testChain = new ReportingChain(); foreach ($files as $f) { if (file_exists("/tmp/{$f}")) { unlink("/tmp/{$f}"); } $testTask = new ReportingTask(); $testTask->cliCommand('touch', ["/tmp/{$f}"]); $testChain->addTask($testTask); } $firstTaskId = $testChain->registerChain(); DeferredHelper::runImmediateTask($firstTaskId); sleep(2); $this->assertTrue(file_exists('/tmp/task401')); /** @var DeferredQueue $queue */ $queue = DeferredQueue::findOne(['id' => $firstTaskId]); $process = new Process('pwd > /dev/null'); $process->run(); $queue->setProcess($process); $event = new DeferredQueueCompleteEvent($queue); QueueCompleteEventHandler::handleEvent($event); sleep(2); $this->assertTrue(file_exists('/tmp/task402')); }