/**
  * @param string $encodedValue
  * @return ClaimCheck
  * @throws ExceptionInterface
  */
 public function unserialize($encodedValue)
 {
     try {
         $data = Json::decode($encodedValue, Json::TYPE_ARRAY);
     } catch (RuntimeException $e) {
         throw new InvalidArgumentException($e->getMessage(), 0, $e);
     }
     if (!array_key_exists('Message', $data)) {
         throw new InvalidArgumentException('Message is required and cannot be empty.');
     }
     return $this->serializer->unserialize($data['Message']);
 }
 /**
  * @throws ExceptionInterface
  * @expectedException \Abacaphiliac\AwsSdk\ClaimCheck\Exception\ExceptionInterface
  */
 public function testUnserializeClaimCheckMissingKey()
 {
     $this->sut->unserialize(Json::encode(['s3BucketName' => 'MyBucket']));
 }