public function setUp()
 {
     $queue = $this->getMockBuilder('SlmQueue\\Queue\\AbstractQueue')->disableOriginalConstructor()->getMock();
     $worker = new SimpleWorker();
     $event = new WorkerEvent($worker, $queue);
     $this->job = new SimpleJob();
     $event->setOptions(['foo' => 'bar']);
     $event->setJob($this->job);
     $this->listener = new ProcessQueueStrategy();
     $this->event = $event;
 }
 /**
  * {@inheritDoc}
  */
 public function processQueue(QueueInterface $queue, array $options = [])
 {
     $eventManager = $this->eventManager;
     $workerEvent = new WorkerEvent($this, $queue);
     $workerEvent->setOptions($options);
     $eventManager->trigger(WorkerEvent::EVENT_BOOTSTRAP, $workerEvent);
     while (!$workerEvent->shouldExitWorkerLoop()) {
         $eventManager->trigger(WorkerEvent::EVENT_PROCESS_QUEUE, $workerEvent);
     }
     $eventManager->trigger(WorkerEvent::EVENT_FINISH, $workerEvent);
     $queueState = $eventManager->trigger(WorkerEvent::EVENT_PROCESS_STATE, $workerEvent);
     $queueState = array_filter(ArrayUtils::iteratorToArray($queueState));
     return $queueState;
 }