From e6aa278f9723748988b6644c7fef6a13d77109de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Fri, 29 Nov 2019 15:02:30 +0100 Subject: [PATCH 1/7] inject messageId to the sqsMessage --- pkg/sqs/SqsConsumer.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/sqs/SqsConsumer.php b/pkg/sqs/SqsConsumer.php index aa91f3df3..d0ada3fb1 100644 --- a/pkg/sqs/SqsConsumer.php +++ b/pkg/sqs/SqsConsumer.php @@ -185,6 +185,10 @@ protected function convertMessage(array $sqsMessage): SqsMessage { $message = $this->context->createMessage(); + if (isset($sqsMessage['MessageId'])) { + $message->setMessageId($sqsMessage['MessageId']); + } + $message->setBody($sqsMessage['Body']); $message->setReceiptHandle($sqsMessage['ReceiptHandle']); From ca12581f204052a64e2de642cd119713743aa07b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Fri, 29 Nov 2019 15:02:30 +0100 Subject: [PATCH 2/7] inject messageId to the sqsMessage --- pkg/sqs/SqsConsumer.php | 2 ++ pkg/sqs/Tests/SqsConsumerTest.php | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/sqs/SqsConsumer.php b/pkg/sqs/SqsConsumer.php index d0ada3fb1..dbd476ea2 100644 --- a/pkg/sqs/SqsConsumer.php +++ b/pkg/sqs/SqsConsumer.php @@ -207,6 +207,8 @@ protected function convertMessage(array $sqsMessage): SqsMessage $message->setProperties($headers[1]); } + $message->setMessageId($sqsMessage['MessageId']); + return $message; } } diff --git a/pkg/sqs/Tests/SqsConsumerTest.php b/pkg/sqs/Tests/SqsConsumerTest.php index 23e443653..05fbb9b69 100644 --- a/pkg/sqs/Tests/SqsConsumerTest.php +++ b/pkg/sqs/Tests/SqsConsumerTest.php @@ -293,6 +293,7 @@ public function testShouldReceiveMessage() $expectedSqsMessage = [ 'Body' => 'The Body', 'ReceiptHandle' => 'The Receipt', + 'MessageId' => 'theMessageId', 'Attributes' => [ 'SenderId' => 'AROAX5IAWYILCTYIS3OZ5:foo@bar.com', 'ApproximateFirstReceiveTimestamp' => '1560512269481', @@ -337,7 +338,7 @@ public function testShouldReceiveMessage() $this->assertInstanceOf(SqsMessage::class, $result); $this->assertEquals('The Body', $result->getBody()); - $this->assertEquals(['hkey' => 'hvalue'], $result->getHeaders()); + $this->assertEquals(['hkey' => 'hvalue', 'message_id' => 'theMessageId'], $result->getHeaders()); $this->assertEquals(['key' => 'value'], $result->getProperties()); $this->assertEquals([ 'SenderId' => 'AROAX5IAWYILCTYIS3OZ5:foo@bar.com', @@ -347,6 +348,7 @@ public function testShouldReceiveMessage() ], $result->getAttributes()); $this->assertTrue($result->isRedelivered()); $this->assertEquals('The Receipt', $result->getReceiptHandle()); + $this->assertEquals('theMessageId', $result->getMessageId()); } public function testShouldReceiveMessageWithCustomRegion() @@ -368,6 +370,7 @@ public function testShouldReceiveMessageWithCustomRegion() ->willReturn(new Result(['Messages' => [[ 'Body' => 'The Body', 'ReceiptHandle' => 'The Receipt', + 'MessageId' => 'theMessageId', 'Attributes' => [ 'ApproximateReceiveCount' => 3, ], From 84d09e0b62f4fefd906f0018be4cf13bb34cb1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Wed, 4 Dec 2019 14:19:42 +0100 Subject: [PATCH 3/7] fix unit test --- pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php b/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php index 13b8809d7..ef8263fa6 100644 --- a/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php +++ b/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php @@ -102,7 +102,8 @@ public function testProduceAndReceiveOneMessageSentDirectlyToQueue() $this->assertEquals(__METHOD__, $message->getBody()); $this->assertEquals(['FooProperty' => 'FooVal'], $message->getProperties()); - $this->assertEquals(['BarHeader' => 'BarVal'], $message->getHeaders()); + $this->assertEquals('BarVal', $message->getHeaders()['BarHeader']); + $this->assertNotNull($message->getMessageId()); } public function testProduceAndReceiveOneMessageSentDirectlyToTopic() From f8a458dc91d8f57a70c692fb7d3999bc58e49fec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Tue, 7 Jan 2020 11:24:00 +0100 Subject: [PATCH 4/7] remove useless if --- pkg/sqs/SqsConsumer.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkg/sqs/SqsConsumer.php b/pkg/sqs/SqsConsumer.php index dbd476ea2..04d5bbd81 100644 --- a/pkg/sqs/SqsConsumer.php +++ b/pkg/sqs/SqsConsumer.php @@ -185,10 +185,6 @@ protected function convertMessage(array $sqsMessage): SqsMessage { $message = $this->context->createMessage(); - if (isset($sqsMessage['MessageId'])) { - $message->setMessageId($sqsMessage['MessageId']); - } - $message->setBody($sqsMessage['Body']); $message->setReceiptHandle($sqsMessage['ReceiptHandle']); From 5736c26f1aef93dc074af4254e690972906d0a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Tue, 7 Jan 2020 11:38:20 +0100 Subject: [PATCH 5/7] fix phpunit test --- pkg/snsqs/Tests/SnsQsProducerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/snsqs/Tests/SnsQsProducerTest.php b/pkg/snsqs/Tests/SnsQsProducerTest.php index 91b21d7bf..dd82e4895 100644 --- a/pkg/snsqs/Tests/SnsQsProducerTest.php +++ b/pkg/snsqs/Tests/SnsQsProducerTest.php @@ -36,7 +36,7 @@ public function testCouldBeConstructedWithRequiredArguments() public function testShouldThrowIfMessageIsInvalidType() { $this->expectException(InvalidMessageException::class); - $this->expectExceptionMessage('The message must be an instance of Enqueue\SnsQs\SnsQsMessage but it is Double\Message\P1'); + $this->expectExceptionMessage('The message must be an instance of Enqueue\SnsQs\SnsQsMessage but it is Double\Message\P4'); $producer = new SnsQsProducer($this->createSnsContextMock(), $this->createSqsContextMock()); From f2bd9db9f044748dad2c9f3de37af371b68e0edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Tue, 14 Jan 2020 11:04:32 +0100 Subject: [PATCH 6/7] use a property for the messageId --- pkg/sqs/SqsMessage.php | 9 +++++++-- pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php | 2 +- pkg/sqs/Tests/SqsConsumerTest.php | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/pkg/sqs/SqsMessage.php b/pkg/sqs/SqsMessage.php index cd2b1bdfe..d1cf77d3c 100644 --- a/pkg/sqs/SqsMessage.php +++ b/pkg/sqs/SqsMessage.php @@ -58,6 +58,11 @@ class SqsMessage implements Message */ private $requeueVisibilityTimeout; + /** + * @var string|null + */ + private $messageId; + public function __construct(string $body = '', array $properties = [], array $headers = []) { $this->body = $body; @@ -166,12 +171,12 @@ public function getCorrelationId(): ?string public function setMessageId(string $messageId = null): void { - $this->setHeader('message_id', $messageId); + $this->messageId = $messageId; } public function getMessageId(): ?string { - return $this->getHeader('message_id'); + return $this->messageId; } public function getTimestamp(): ?int diff --git a/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php b/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php index ef8263fa6..4486ca8a8 100644 --- a/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php +++ b/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php @@ -102,7 +102,7 @@ public function testProduceAndReceiveOneMessageSentDirectlyToQueue() $this->assertEquals(__METHOD__, $message->getBody()); $this->assertEquals(['FooProperty' => 'FooVal'], $message->getProperties()); - $this->assertEquals('BarVal', $message->getHeaders()['BarHeader']); + $this->assertEquals(['BarHeader' => 'BarVal'], $message->getHeaders()); $this->assertNotNull($message->getMessageId()); } diff --git a/pkg/sqs/Tests/SqsConsumerTest.php b/pkg/sqs/Tests/SqsConsumerTest.php index 05fbb9b69..ed2a7b276 100644 --- a/pkg/sqs/Tests/SqsConsumerTest.php +++ b/pkg/sqs/Tests/SqsConsumerTest.php @@ -338,7 +338,7 @@ public function testShouldReceiveMessage() $this->assertInstanceOf(SqsMessage::class, $result); $this->assertEquals('The Body', $result->getBody()); - $this->assertEquals(['hkey' => 'hvalue', 'message_id' => 'theMessageId'], $result->getHeaders()); + $this->assertEquals(['hkey' => 'hvalue'], $result->getHeaders()); $this->assertEquals(['key' => 'value'], $result->getProperties()); $this->assertEquals([ 'SenderId' => 'AROAX5IAWYILCTYIS3OZ5:foo@bar.com', From b7a9877f439bef66ede43a48465fc959923e28ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20L=C3=A9v=C3=AAque?= Date: Tue, 14 Jan 2020 11:30:25 +0100 Subject: [PATCH 7/7] Revert "use a property for the messageId" This reverts commit f2bd9db9f044748dad2c9f3de37af371b68e0edf. --- pkg/sqs/SqsMessage.php | 9 ++------- pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php | 2 +- pkg/sqs/Tests/SqsConsumerTest.php | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/pkg/sqs/SqsMessage.php b/pkg/sqs/SqsMessage.php index d1cf77d3c..cd2b1bdfe 100644 --- a/pkg/sqs/SqsMessage.php +++ b/pkg/sqs/SqsMessage.php @@ -58,11 +58,6 @@ class SqsMessage implements Message */ private $requeueVisibilityTimeout; - /** - * @var string|null - */ - private $messageId; - public function __construct(string $body = '', array $properties = [], array $headers = []) { $this->body = $body; @@ -171,12 +166,12 @@ public function getCorrelationId(): ?string public function setMessageId(string $messageId = null): void { - $this->messageId = $messageId; + $this->setHeader('message_id', $messageId); } public function getMessageId(): ?string { - return $this->messageId; + return $this->getHeader('message_id'); } public function getTimestamp(): ?int diff --git a/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php b/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php index 4486ca8a8..ef8263fa6 100644 --- a/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php +++ b/pkg/sqs/Tests/Functional/SqsCommonUseCasesTest.php @@ -102,7 +102,7 @@ public function testProduceAndReceiveOneMessageSentDirectlyToQueue() $this->assertEquals(__METHOD__, $message->getBody()); $this->assertEquals(['FooProperty' => 'FooVal'], $message->getProperties()); - $this->assertEquals(['BarHeader' => 'BarVal'], $message->getHeaders()); + $this->assertEquals('BarVal', $message->getHeaders()['BarHeader']); $this->assertNotNull($message->getMessageId()); } diff --git a/pkg/sqs/Tests/SqsConsumerTest.php b/pkg/sqs/Tests/SqsConsumerTest.php index ed2a7b276..05fbb9b69 100644 --- a/pkg/sqs/Tests/SqsConsumerTest.php +++ b/pkg/sqs/Tests/SqsConsumerTest.php @@ -338,7 +338,7 @@ public function testShouldReceiveMessage() $this->assertInstanceOf(SqsMessage::class, $result); $this->assertEquals('The Body', $result->getBody()); - $this->assertEquals(['hkey' => 'hvalue'], $result->getHeaders()); + $this->assertEquals(['hkey' => 'hvalue', 'message_id' => 'theMessageId'], $result->getHeaders()); $this->assertEquals(['key' => 'value'], $result->getProperties()); $this->assertEquals([ 'SenderId' => 'AROAX5IAWYILCTYIS3OZ5:foo@bar.com',