/** * 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); }
/** * @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); }