public function testReceiveHandlerDB()
 {
     $gateway = $this->getTableGateway();
     $handler = new QueueSubscriber($gateway);
     $uuid = new UUID(new MersenneRandom(10000));
     $job_name = 'test_job_1';
     $added = new DateTime('01-01-2014 00:00:00');
     # create the transition
     $storage = new Storage();
     $jobID = $uuid->v3($uuid->v4(), $job_name);
     $storage->setJobId($jobID);
     $storage->setDateAdded($added);
     $storage->setJobData(new \stdClass());
     $storage->setState(QueueConfig::STATE_ADD);
     $storage->setRetryLeft(3);
     $event = new QueueReceiveEvent($storage);
     $handler->onReceive($event);
     # assert save result set matches
     $resulting_table = $this->getConnection()->createQueryTable("later_job_queue", "SELECT * FROM later_job_queue ORDER BY dte_add");
     $expected_table = $this->createXmlDataSet(__DIR__ . DIRECTORY_SEPARATOR . 'Fixture' . DIRECTORY_SEPARATOR . "receive_handler_result.xml")->getTable("later_job_queue");
     $this->assertTablesEqual($expected_table, $resulting_table);
 }
 /**
  *  @expectedException LaterJob\Exception
  */
 public function testStartTranstionExceptionMissingOccuredColumn()
 {
     $gateway = $this->getTableGateway();
     $handler = new WorkerSubscriber($gateway);
     $mock_worker = $this->getMockBuilder('LaterJob\\Worker')->disableOriginalConstructor()->getMock();
     $uuid = new UUID(new MersenneRandom());
     $worker_name = 'test_worker_1';
     # create the transition
     $transition = new Transition();
     $transition->setWorker($uuid->v3($uuid->v4(), $worker_name));
     $transition->setState(WorkerConfig::STATE_START);
     $transition->setMessage('worker starting');
     # create the event object
     $transition_event = new WorkerTransitionEvent($mock_worker, $transition);
     # run through handler
     $handler->onWorkerStart($transition_event);
     $handler->onWorkerStart($transition_event);
 }
 /**
  *  @expectedException LaterJob\Exception
  */
 public function testExceptionStartHandlerMissingDateColumn()
 {
     $gateway = $this->getTableGateway();
     $handler = new JobSubscriber($gateway);
     $mock_job = $this->getMockBuilder('LaterJob\\Job')->disableOriginalConstructor()->getMock();
     $uuid = new UUID(new MersenneRandom());
     $worker_name = 'test_job_1';
     $process_handler = '01b89534-cf6e-3a63-b7fe-8e6b5a729483';
     # create the transition
     $transition = new Transition();
     $transition->setJob($uuid->v3($uuid->v4(), $worker_name));
     $transition->setState(QueueConfig::STATE_START);
     $transition->setMessage('job started');
     $transition->setProcessHandle($process_handler);
     # create the event object
     $transition_event = new JobTransitionEvent($mock_job, $transition);
     # run through handler
     $handler->onJobStart($transition_event);
 }