From 96b63b83bf3017c8a3ff336b477e69c9bc376c18 Mon Sep 17 00:00:00 2001 From: Raphael Hardt Date: Thu, 10 Sep 2020 02:04:08 -0300 Subject: [PATCH] [AmazonSqsMessenger] Added the count message awareness on the transport --- .../Tests/Transport/AmazonSqsTransportTest.php | 8 ++++++++ .../Bridge/AmazonSqs/Transport/AmazonSqsTransport.php | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php index 9e64305063..34e0bf1502 100644 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Tests/Transport/AmazonSqsTransportTest.php @@ -16,6 +16,7 @@ use Symfony\Component\Messenger\Bridge\AmazonSqs\Tests\Fixtures\DummyMessage; use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransport; use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\Connection; use Symfony\Component\Messenger\Envelope; +use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface; use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface; use Symfony\Component\Messenger\Transport\TransportInterface; @@ -50,6 +51,13 @@ class AmazonSqsTransportTest extends TestCase $this->assertSame($decodedMessage, $envelopes[0]->getMessage()); } + public function testTransportIsAMessageCountAware() + { + $transport = $this->getTransport(); + + $this->assertInstanceOf(MessageCountAwareInterface::class, $transport); + } + private function getTransport(SerializerInterface $serializer = null, Connection $connection = null) { $serializer = $serializer ?: $this->getMockBuilder(SerializerInterface::class)->getMock(); diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php index ebca00d3bd..cf84fce11c 100644 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/AmazonSqsTransport.php @@ -14,6 +14,7 @@ namespace Symfony\Component\Messenger\Bridge\AmazonSqs\Transport; use AsyncAws\Core\Exception\Http\HttpException; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Exception\TransportException; +use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface; use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer; use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface; use Symfony\Component\Messenger\Transport\SetupableTransportInterface; @@ -23,7 +24,7 @@ use Symfony\Contracts\Service\ResetInterface; /** * @author Jérémy Derussé */ -class AmazonSqsTransport implements TransportInterface, SetupableTransportInterface, ResetInterface +class AmazonSqsTransport implements TransportInterface, SetupableTransportInterface, MessageCountAwareInterface, ResetInterface { private $serializer; private $connection; @@ -60,6 +61,14 @@ class AmazonSqsTransport implements TransportInterface, SetupableTransportInterf ($this->receiver ?? $this->getReceiver())->reject($envelope); } + /** + * {@inheritdoc} + */ + public function getMessageCount(): int + { + return ($this->receiver ?? $this->getReceiver())->getMessageCount(); + } + /** * {@inheritdoc} */