예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     foreach ($this->data as $data) {
         $entity = new Job($data['command'], $data['args'], $data['confirmed']);
         foreach ($data['state'] as $state) {
             $entity->setState($state);
         }
         $this->setReference($data['reference'], $entity);
         $manager->persist($entity);
     }
     $manager->flush();
 }
예제 #2
0
 public function testIsRetryAllowed()
 {
     $job = new Job('a');
     $this->assertFalse($job->isRetryAllowed());
     $job->setMaxRetries(1);
     $this->assertTrue($job->isRetryAllowed());
     $job->setState('running');
     $retry = new Job('a');
     $job->addRetryJob($retry);
     $this->assertFalse($job->isRetryAllowed());
 }
 public function testCloseJobDoesNotCreateMoreThanAllowedRetries()
 {
     $a = new Job('a');
     $a->setMaxRetries(2);
     $a->setState('running');
     $this->em->persist($a);
     $this->em->flush();
     $this->dispatcher->expects($this->at(0))->method('dispatch')->with('jms_job_queue.job_state_change', new StateChangeEvent($a, 'failed'));
     $this->dispatcher->expects($this->at(1))->method('dispatch')->with('jms_job_queue.job_state_change', new \PHPUnit_Framework_Constraint_Not($this->equalTo(new StateChangeEvent($a, 'failed'))));
     $this->dispatcher->expects($this->at(2))->method('dispatch')->with('jms_job_queue.job_state_change', new \PHPUnit_Framework_Constraint_Not($this->equalTo(new StateChangeEvent($a, 'failed'))));
     $this->assertCount(0, $a->getRetryJobs());
     $this->repo->closeJob($a, 'failed');
     $this->assertEquals('running', $a->getState());
     $this->assertCount(1, $a->getRetryJobs());
     $a->getRetryJobs()->first()->setState('running');
     $this->repo->closeJob($a->getRetryJobs()->first(), 'failed');
     $this->assertCount(2, $a->getRetryJobs());
     $this->assertEquals('failed', $a->getRetryJobs()->first()->getState());
     $this->assertEquals('running', $a->getState());
     $a->getRetryJobs()->last()->setState('running');
     $this->repo->closeJob($a->getRetryJobs()->last(), 'terminated');
     $this->assertCount(2, $a->getRetryJobs());
     $this->assertEquals('terminated', $a->getRetryJobs()->last()->getState());
     $this->assertEquals('terminated', $a->getState());
     $this->em->clear();
     $reloadedA = $this->em->find('JMSJobQueueBundle:Job', $a->getId());
     $this->assertCount(2, $reloadedA->getRetryJobs());
 }