Skip to content

Commit

Permalink
enhancement: sqs response md5 validation (#2830)
Browse files Browse the repository at this point in the history
  • Loading branch information
stobrien89 authored Nov 17, 2023
1 parent 5b8a381 commit fc43613
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
7 changes: 7 additions & 0 deletions .changes/nextrelease/sqs-response-middleware.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[
{
"type": "enhancement",
"category": "Sqs",
"description": "Updates response md5 validation"
}
]
2 changes: 1 addition & 1 deletion src/Sqs/SqsClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ function ($result) use ($c, $r) {
]
);
}
} else if (isset($msg['MessageAttributes'])) {
} else if (!empty($msg['MessageAttributes'])) {
throw new SqsException(
sprintf(
'No Attribute MD5 found. Expected %s',
Expand Down
27 changes: 27 additions & 0 deletions tests/Sqs/SqsClientTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -165,4 +165,31 @@ public function testSkipsCommandsThatAreNotReceiveMessage()
$this->addMockResults($client, [new Result()]);
$client->listQueues();
}

public function testDoesNotValidateEmptyMessageAttributes()
{
$client = new SqsClient([
'region' => 'us-west-2',
'version' => 'latest'
]);

$mock = new Result([
'Messages' => [
[
'Body' => 'Test',
'MessageAttributes' => []
]
]
]);

$this->addMockResults($client, [$mock]);
$response = $client->receiveMessage([
'QueueUrl' => 'http://foo.com',
'MessageAttributeNames' => [
'All'
],
]);

$this->assertEmpty($response->get('MessageAttributes'));
}
}

0 comments on commit fc43613

Please sign in to comment.