Example #1
1
 public function testAddJob()
 {
     $driver = new RabbitMQDriver($this->getConnection());
     $queue = new Queue($driver);
     $queue->addJob(new Job('test', ['callback' => [self::class, 'jobCallback']]));
     $logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
     $logger->expects($this->atLeastOnce())->method('log')->will($this->returnCallback(function ($type, $data, $context = []) {
         if (LogLevel::ALERT == $type) {
             $this->assertEquals(LogLevel::ALERT, $type);
             $this->assertContains('error', $data);
             $this->assertArrayHasKey('exception', $context);
             $this->assertInstanceOf(\Exception::class, $context['exception']);
             $this->assertContains(self::$callbackErrorMessage, $context['exception']->getMessage());
         }
     }));
     $worker = new Worker($queue, new CallbackExecutor(), 1);
     $worker->setLogger($logger);
     $worker->run();
 }