Пример #1
0
 /**
  * Tests the basic.return if a message cannot be routed.
  *
  * @test
  */
 public function routeToUnboundExchangeShouldBasicReturn()
 {
     $this->admin->declareExchange(new Tx_Amqp_Messaging_DirectExchange(self::TEST_EXCHANGE, FALSE, TRUE));
     $this->service->setMandatory(TRUE);
     $self = $this;
     $messageBody = 'basic.return with no binding to destination queue';
     $this->service->send(new \PhpAmqpLib\Message\AMQPMessage($messageBody), self::TEST_EXCHANGE);
     $this->service->handleReturn(function (Tx_Amqp_Messaging_UndeliverableMessage $message) use($self, $messageBody) {
         $self->assertEquals($messageBody, $message->getMessage()->body);
         Tx_Amqp_Messaging_AMQPUtils::throwStopException();
     });
     $this->admin->deleteExchange(self::TEST_EXCHANGE);
 }
Пример #2
0
 /**
  * @test
  */
 public function declareExchangeToExchangeBinding()
 {
     $this->admin->declareQueue(new Tx_Amqp_Messaging_Queue(self::TEST_QUEUE, FALSE, FALSE, TRUE));
     $this->admin->declareExchange(new Tx_Amqp_Messaging_DirectExchange(self::TEST_EXCHANGE, FALSE, TRUE));
     $exchangeToQueueBinding = new Tx_Amqp_Messaging_Binding(self::TEST_QUEUE, Tx_Amqp_Messaging_Binding::DESTINATION_QUEUE, self::TEST_EXCHANGE, 'testRoutingKey');
     $this->admin->declareBinding($exchangeToQueueBinding);
     $exchange2 = self::TEST_EXCHANGE . '2';
     $this->admin->declareExchange(new Tx_Amqp_Messaging_DirectExchange($exchange2, FALSE, TRUE));
     $exchangeToExchangeBinding = new Tx_Amqp_Messaging_Binding($exchange2, Tx_Amqp_Messaging_Binding::DESTINATION_EXCHANGE, self::TEST_EXCHANGE, 'testRoutingKey');
     $this->admin->declareBinding($exchangeToExchangeBinding);
     $this->admin->deleteBinding($exchangeToQueueBinding);
     $this->admin->deleteExchange(self::TEST_EXCHANGE);
     $this->admin->deleteExchange($exchange2);
     $this->admin->deleteQueue(self::TEST_QUEUE);
 }