public function testPurgeQueue()
 {
     $queue = $this->createQueue();
     $exchange = new Exchange();
     $exchange->name = self::EXCHANGE_TEST_NAME;
     $exchange->vhost = '/';
     $this->object->addExchange($exchange);
     $binding = new Binding();
     $binding->vhost = '/';
     $binding->source = self::EXCHANGE_TEST_NAME;
     $binding->destination = self::QUEUE_TEST_NAME;
     $binding->routing_key = self::QUEUE_TEST_NAME;
     $this->object->addBinding($binding);
     $message = json_encode(array('properties' => array(), 'routing_key' => self::QUEUE_TEST_NAME, 'payload' => 'body', 'payload_encoding' => 'string'));
     $n = 12;
     while ($n > 0) {
         $this->client->post('/api/exchanges/' . urlencode('/') . '/' . self::EXCHANGE_TEST_NAME . '/publish', array('content-type' => 'application/json'), $message)->send();
         $n--;
     }
     usleep(2000000);
     $this->object->refreshQueue($queue);
     $this->assertEquals(12, $queue->messages_ready);
     $this->object->purgeQueue('/', self::QUEUE_TEST_NAME);
     usleep(4000000);
     $this->object->refreshQueue($queue);
     $this->assertEquals(0, $queue->messages_ready);
 }
 /**
  * @covers RabbitMQ\Management\Guarantee::ensureBinding
  */
 public function testEnsureBindingAlreadyBound()
 {
     $exchange = new Exchange();
     $exchange->type = 'fanout';
     $exchange->vhost = '/';
     $exchange->name = 'test.exchange';
     $queue = new Queue();
     $queue->name = 'test.queue';
     $queue->vhost = '/';
     $this->client->addExchange($exchange);
     $this->client->addQueue($queue);
     $binding = new Binding();
     $binding->vhost = '/';
     $binding->source = 'test.exchange';
     $binding->destination = 'test.queue';
     $binding->routing_key = 'special.routing.key';
     $this->client->addBinding($binding);
     $this->object->ensureBinding($binding);
     $found = false;
     foreach ($this->client->listBindingsByExchangeAndQueue('/', 'test.exchange', 'test.queue') as $binding) {
         if ('special.routing.key' === $binding->routing_key) {
             $found = true;
             break;
         }
     }
     $this->client->deleteExchange($exchange->vhost, $exchange->name);
     $this->client->deleteQueue($queue->vhost, $queue->name);
     if (!$found) {
         $this->fail('Unable to find back the binding');
     }
 }