コード例 #1
0
ファイル: WorkerTest.php プロジェクト: php-resque/resque
 public function testBeforePerformEventCanStopWork()
 {
     $eventDispatcher = new EventDispatcher();
     $this->worker = new Worker($this->getMock('Resque\\Component\\Job\\Factory\\JobInstanceFactoryInterface'), $eventDispatcher);
     $eventDispatcher->addListener('resque.job.before_perform', function () {
         throw new \Exception('Take a break');
     });
     $eventTriggered = 0;
     $eventDispatcher->addListener(ResqueJobEvents::FAILED, function () use(&$eventTriggered) {
         $eventTriggered++;
     });
     return $this->markTestIncomplete();
     $job = new Job('Resque\\Component\\Job\\Tests\\Jobs\\Simple');
     $queue = new RedisQueue($this->redis);
     $queue->setName('baz');
     $job->setOriginQueue($queue);
     $this->assertFalse($this->worker->perform($job), 'Job was still performed even though "resque.job.before_perform" throw an exception');
     $this->assertEquals(1, $eventTriggered, 'Expected event "resque.job.failed" was triggered for thrown exception on "resque.job.before_perform"');
 }