public function testConsuming() { $message = new Message('{"a": 10, "b": 15}', ['headers' => ['to' => 'phpunit']]); $queue = $this->channel->queue()->define(QueueInterface::FLAG_AUTO_DELETE); $this->channel->publish($message, '', $queue); $this->handler->expects($this->once())->method('handle')->willReturnCallback(function (Delivery $message) { $message->cancel(); }); $this->consumer->consume($queue); }
/** * Driver should compose AMQP message and publish it to the channel. */ public function testPublish() { $reply = $this->getMockBuilder(Invoker\Reply::class)->disableOriginalConstructor()->getMock(); $this->channel->expects($this->once())->method('publish')->willReturnCallback(function (Message $message, $exchange, $routingKey) use($reply) { $headers = ['base' => 'dec', 'topic' => 'add']; $this->assertJsonStringEqualsJsonString('{"a": 10, "b": 53}', $message->getBody()); $this->assertEquals($headers, $message->getHeaders()); $this->assertEquals($this->exchange, $exchange); $this->assertEquals('add', $routingKey); return $reply; }); $this->driver->publish($this->createIdentity(), $this->createRequest()); }
public function testCallReplyResolving() { $message = $this->createMessage(); $this->channel->expects($this->once())->method('publish'); $this->invoker->call($message, '', '')->resolve(10); }
/** * Create and publish reply message for given request message. * * @param Delivery $request * @param string $body */ private function reply(Delivery $request, $body) { $reply = new Message($body, ['correlation-id' => $request->getProperty('correlation-id')]); $this->channel->publish($reply, '', $request->getProperty('reply-to')); }