/**
  * @test
  */
 public function getQueueReusesInstances()
 {
     $queueManager = new QueueManager();
     $queueManager->injectSettings(array('queues' => array('TestQueue' => array('className' => 'TYPO3\\Jobqueue\\Common\\Tests\\Unit\\Fixtures\\TestQueue'))));
     $queue = $queueManager->getQueue('TestQueue');
     $this->assertSame($queue, $queueManager->getQueue('TestQueue'));
 }
 /**
  * @test
  */
 public function queuePublishesMessageToQueue()
 {
     $job = new TestJob();
     $this->jobManager->queue('TestQueue', $job);
     $testQueue = $this->queueManager->getQueue('TestQueue');
     $message = $testQueue->peek();
     $this->assertInstanceOf('TYPO3\\Jobqueue\\Common\\Queue\\Message', $message);
 }
 /**
  *
  * @param string $queueName
  * @param integer $limit
  * @return array
  */
 public function peek($queueName, $limit = 1)
 {
     $queue = $this->queueManager->getQueue($queueName);
     $messages = $queue->peek($limit);
     return array_map(function (Message $message) {
         $job = unserialize($message->getPayload());
         return $job;
     }, $messages);
 }
 /**
  * List queued jobs
  *
  * @param string $queueName The name of the queue
  * @param integer $limit Number of jobs to list
  * @return void
  */
 public function listCommand($queueName, $limit = 1)
 {
     $jobs = $this->jobManager->peek($queueName, $limit);
     $totalCount = $this->queueManager->getQueue($queueName)->count();
     foreach ($jobs as $job) {
         $this->outputLine('<u>%s</u>', array($job->getLabel()));
     }
     if ($totalCount > count($jobs)) {
         $this->outputLine('(%d omitted) ...', array($totalCount - count($jobs)));
     }
     $this->outputLine('(<b>%d total</b>)', array($totalCount));
 }