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); }