/**
  * Check we can use the getters and setters appropriately
  * 
  * @return void
  * 
  * @test
  */
 public function testGettersSetters()
 {
     //Get a task
     $_task = $this->_getTask();
     //test priority
     $_priority = 123;
     $_task->setPriority($_priority);
     $this->assertEquals($_priority, $_task->getPriority(), 'Check that priority was set correctly');
     //test ttr
     $_ttr = 62;
     $_task->setTtr($_ttr);
     $this->assertEquals($_ttr, $_task->getTtr(), 'Check that ttr was set correctly');
     //test delay
     $_delay = 10;
     $_task->setDelay($_delay);
     $this->assertEquals($_delay, $_task->getDelay(), 'Check that delay was set correctly');
     //test status
     $_status = 'testing';
     $_task->setStatus($_status);
     $this->assertEquals($_status, $_task->getStatus(), 'Check that status was set correctly');
     //set the task to the queue
     $this->_adapter->addTask($this->_queue, $_task);
     //peek at queue task
     $_task2 = $this->_adapter->getUnreservedDelayedTask($this->_queue);
     //check that the data is as expected
     $this->assertEquals(array('queue' => 'unit_tests', 'state' => 'delayed', 'priority' => (string) $_priority, 'age' => '0', 'delay' => (string) $_delay, 'ttr' => (string) $_ttr, 'expiration' => (string) ($_delay - 1), 'reserves' => '0', 'timeouts' => '0', 'releases' => '0', 'holds' => '0', 'unholds' => '0'), $this->_adapter->getInformation($_task2)->getData(), 'Check that the task information is as we expected');
     //kick the delayed tasks
     $this->_adapter->unholdMultiple(10);
     //delete the task that was set
     $this->_adapter->remove($this->_queue, $_task2);
 }
 /**
  * Check that we can queue multiple tasks, hold them, and then unhold them all
  * 
  * @return void
  * 
  * @test
  */
 public function testMultipleUnhold()
 {
     //number of tasks to work with
     $_taskCount = 5;
     $_tasks = array();
     //create and queue the tasks
     for ($i = 0; $i < $_taskCount; $i++) {
         //add and then retrieve the task
         $this->_queue->addTask($this->_getTask(self::DEFAULT_TASK_DATA, 'test_error'));
         $_tasks[$i] = $this->_queue->getNextUnreservedTask();
         //run the tasks
         $this->_queue->runNextTask();
         //check it's been held
         $this->assertEquals(Lilmuckers_Queue_Model_Queue_Task_State::HELD, $_tasks[$i]->getInfo(true)->getState(), 'Check that the task was held');
     }
     // multiple unholds
     $this->_adapter->unholdMultiple(10);
     //create and queue the tasks
     for ($i = 0; $i < $_taskCount; $i++) {
         //check it's been held
         $this->assertEquals(Lilmuckers_Queue_Model_Queue_Task_State::QUEUED, $_tasks[$i]->getInfo(true)->getState(), 'Check that the task was unheld');
         //remove the task
         $this->_queue->remove($_tasks[$i]);
     }
 }
 /**
  * Test that a task can be held and unheld
  * 
  * @return void
  * 
  * @test
  */
 public function testHoldTask()
 {
     //generate a random value to verify
     $_testValue = mt_rand();
     //create a task and check it's instantiated
     $_task = $this->_getTask($_testValue);
     //add task to queue
     $this->_adapter->addTask($this->_queue, $_task);
     //reserve a queue task
     $_task2 = $this->_adapter->getTask($this->_queue->getName());
     //put the task on hold
     $this->_adapter->hold($this->_queue, $_task2);
     //get the info on the task
     $this->assertEquals(Lilmuckers_Queue_Model_Queue_Task_State::HELD, $_task2->getInfo(true)->getState(), 'Check that the task was held');
     //unhold the task - this doesn't cover standard hold
     $this->_adapter->unholdMultiple(10, $this->_queue);
     //get the info on the task
     $this->assertEquals(Lilmuckers_Queue_Model_Queue_Task_State::QUEUED, $_task2->getInfo(true)->getState(), 'Check that the task was requeued');
     //delete the task that was set
     $this->_adapter->remove($this->_queue, $_task2);
 }