/**
  * @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');
     }
 }
 public function testAddQueueThatAlreadyExists()
 {
     $queue = $this->createQueue();
     $queue->durable = true;
     try {
         $this->object->addQueue($queue);
         $this->fail('Should raise an exception');
     } catch (PreconditionFailedException $e) {
     }
 }