/**
  * @return int
  */
 public function count()
 {
     return $this->memory->count() + $this->queue->count();
 }
 /**
  * @return array
  */
 public function info()
 {
     $workers = $this->manager->info();
     return [Info::BUSY => $workers[Info::BUSY], Info::CALLS => $this->queue->count(), Info::IDLE => $workers[Info::IDLE], Info::SIZE => $workers[Info::TOTAL]];
 }
 /**
  * @dataProvider queueProvider
  */
 public function testOperations(QueueInterface $queue)
 {
     $rpc0 = Factory::rpc('a', ['b']);
     $rpc1 = Factory::rpc('c', ['d']);
     $rpc2 = Factory::rpc('e', ['f']);
     $this->assertSame(0, $queue->count());
     $queue->enqueue($rpc0);
     $this->assertSame(1, $queue->count());
     $queue->enqueue($rpc1);
     $this->assertSame(2, $queue->count());
     $queue->enqueue($rpc2);
     $this->assertSame(3, $queue->count());
     $this->assertSame(json_encode($rpc0), json_encode($this->dequeue($queue->dequeue())));
     $this->assertSame(2, $queue->count());
     $this->assertSame(json_encode($rpc1), json_encode($this->dequeue($queue->dequeue())));
     $this->assertSame(1, $queue->count());
     $this->assertSame(json_encode($rpc2), json_encode($this->dequeue($queue->dequeue())));
     $this->assertSame(0, $queue->count());
 }