From 8f65ea020ff6452f706ab5e4773edfe326bbd5f2 Mon Sep 17 00:00:00 2001 From: Matteo Beccati Date: Thu, 25 Oct 2018 18:08:33 +0200 Subject: [PATCH] Fix delay not working on SQS --- pkg/sqs/Client/SqsDriver.php | 2 ++ pkg/sqs/Tests/Client/SqsDriverTest.php | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) mode change 100644 => 100755 pkg/sqs/Client/SqsDriver.php mode change 100644 => 100755 pkg/sqs/Tests/Client/SqsDriverTest.php diff --git a/pkg/sqs/Client/SqsDriver.php b/pkg/sqs/Client/SqsDriver.php old mode 100644 new mode 100755 index c86237309..59df35131 --- a/pkg/sqs/Client/SqsDriver.php +++ b/pkg/sqs/Client/SqsDriver.php @@ -134,6 +134,7 @@ public function createTransportMessage(Message $message) $transportMessage->setTimestamp($message->getTimestamp()); $transportMessage->setReplyTo($message->getReplyTo()); $transportMessage->setCorrelationId($message->getCorrelationId()); + $transportMessage->setDelaySeconds($message->getDelay()); return $transportMessage; } @@ -157,6 +158,7 @@ public function createClientMessage(PsrMessage $message) $clientMessage->setPriority(MessagePriority::NORMAL); $clientMessage->setReplyTo($message->getReplyTo()); $clientMessage->setCorrelationId($message->getCorrelationId()); + $clientMessage->setDelay($message->getDelaySeconds() ?: null); return $clientMessage; } diff --git a/pkg/sqs/Tests/Client/SqsDriverTest.php b/pkg/sqs/Tests/Client/SqsDriverTest.php old mode 100644 new mode 100755 index f3ab4761d..36e1e090e --- a/pkg/sqs/Tests/Client/SqsDriverTest.php +++ b/pkg/sqs/Tests/Client/SqsDriverTest.php @@ -91,8 +91,6 @@ public function testShouldConvertTransportMessageToClientMessage() $transportMessage->setTimestamp(1000); $transportMessage->setReplyTo('theReplyTo'); $transportMessage->setCorrelationId('theCorrelationId'); - $transportMessage->setReplyTo('theReplyTo'); - $transportMessage->setCorrelationId('theCorrelationId'); $driver = new SqsDriver( $this->createPsrContextMock(), @@ -120,9 +118,15 @@ public function testShouldConvertTransportMessageToClientMessage() $this->assertSame(1000, $clientMessage->getTimestamp()); $this->assertSame('theReplyTo', $clientMessage->getReplyTo()); $this->assertSame('theCorrelationId', $clientMessage->getCorrelationId()); + $this->assertNull($clientMessage->getDelay()); $this->assertNull($clientMessage->getExpire()); $this->assertSame(MessagePriority::NORMAL, $clientMessage->getPriority()); + + // Test delay + $transportMessage->setDelaySeconds(100); + $clientMessage = $driver->createClientMessage($transportMessage); + $this->assertSame(100, $clientMessage->getDelay()); } public function testShouldConvertClientMessageToTransportMessage() @@ -141,7 +145,7 @@ public function testShouldConvertClientMessageToTransportMessage() $context = $this->createPsrContextMock(); $context - ->expects($this->once()) + ->expects($this->exactly(2)) ->method('createMessage') ->willReturn(new SqsMessage()) ; @@ -171,6 +175,12 @@ public function testShouldConvertClientMessageToTransportMessage() $this->assertSame(1000, $transportMessage->getTimestamp()); $this->assertSame('theReplyTo', $transportMessage->getReplyTo()); $this->assertSame('theCorrelationId', $transportMessage->getCorrelationId()); + $this->assertSame(0, $transportMessage->getDelaySeconds()); + + // Test delay + $clientMessage->setDelay(100); + $transportMessage = $driver->createTransportMessage($clientMessage); + $this->assertSame(100, $transportMessage->getDelaySeconds()); } public function testShouldSendMessageToRouterQueue()