/**
  * @param mixed[] $message
  * @return string|bool
  * @throws ExceptionInterface
  */
 private function decodeSqsMessage(array $message)
 {
     if (!array_key_exists('Body', $message)) {
         // Unknown message body. Skip processing.
         return $message;
     }
     try {
         $claimCheck = $this->configuration->getClaimCheckSerializer()->unserialize($message['Body']);
     } catch (ExceptionInterface $e) {
         // Unknown message body. Skip processing.
         return $message;
     }
     if (!$claimCheck instanceof ClaimCheck) {
         // Unknown message body. Skip processing.
         return $message;
     }
     try {
         $message['Body'] = $this->fetchClaimCheckFromS3($claimCheck);
     } catch (ExceptionInterface $e) {
         // Unknown message body. Skip processing.
         return $message;
     }
     if (array_key_exists('ReceiptHandle', $message) && $this->configuration->getDeleteFromS3()) {
         // Prepend S3 information to receipt handle.
         $message['ReceiptHandle'] = $this->embedS3PointerInReceiptHandle($message['ReceiptHandle'], $claimCheck->getS3BucketName(), $claimCheck->getS3Key());
     }
     return $message;
 }
 public function testDeleteFromS3()
 {
     self::assertTrue($this->sut->getDeleteFromS3());
     $this->sut->setDeleteFromS3(false);
     self::assertFalse($this->sut->getDeleteFromS3());
 }