コード例 #1
0
ファイル: DeleteManager.php プロジェクト: metfan/rabbit-setup
 /**
  * Delete selected exchanges.
  * If exchanges == "*" get list of exchange from rabbitmq API
  *
  * @param $vhost
  * @param $exchanges
  */
 public function deleteExchanges($vhost, $exchanges)
 {
     if ('*' === $exchanges) {
         //so you want to destroy all exchanges, as you whish, let me time to list'em all
         $exchanges = $this->exchangeManager->getAll(urlencode($vhost));
         foreach ($exchanges as $key => $exchange) {
             if (0 === strpos($exchange['name'], 'amq') || !$exchange['name']) {
                 unset($exchanges[$key]);
             }
         }
     } elseif (!$vhost) {
         throw new \InvalidArgumentException('If you want to delete certain exchange(s) you have to provide vhost');
     } else {
         //few exchanges to delete, let stack them in array
         $exchanges = explode(',', $exchanges);
         array_walk($exchanges, function (&$item, $key, $vhost) {
             $item = ['vhost' => $vhost, 'name' => trim($item)];
         }, $vhost);
     }
     if (0 == count($exchanges)) {
         $this->logger->error('No exchange found.');
         return;
     }
     foreach ($exchanges as $exchange) {
         if (false === strpos($exchange['name'], 'amq') && $exchange['name']) {
             $this->exchangeManager->delete(urlencode($exchange['vhost']), $exchange['name']);
         }
     }
 }
コード例 #2
0
 public function testDelete()
 {
     $manager = new ExchangeManager();
     $manager->setClient($this->client);
     $manager->setLogger($this->logger);
     $this->logger->expects($this->once())->method('info')->with('Delete exchange <info>exTest</info> from vhost <info>test</info>');
     $this->client->expects($this->once())->method('query')->with(ClientInterface::METHOD_DELETE, '/api/exchanges/test/exTest')->willReturn(true);
     $this->assertEquals(true, $manager->delete('test', 'exTest'));
 }