public void ItShouldThrowOnMalformedTokens()
        {
            var    malformedToken = new Faker().Random.Hash();
            Action act            = () => ContinuationToken.FromContinuationToken <DeserializedToken>(malformedToken);

            act.Should().Throw <System.ComponentModel.DataAnnotations.ValidationException>().WithMessage($"*{malformedToken}*");
        }
 /// <summary>
 /// Convert a base64 string to a continuation token.
 /// </summary>
 /// <param name="query">The <see cref="IContinuationQuery"/> to use.</param>
 /// <returns>A <see cref="LimitOffsetContinuationToken"/>.</returns>
 public static LimitOffsetContinuationToken FromContinuationQuery(IContinuationQuery query)
 {
     return(ContinuationToken.FromContinuationToken <LimitOffsetContinuationToken>(query.ContinuationToken)
            ?? new LimitOffsetContinuationToken {
         Limit = query.Limit
     });
 }
        public void ItShouldConvertTokens()
        {
            var source = new DeserializedToken {
                Limit = 50, Page = 2
            };

            var result = ContinuationToken.FromContinuationToken <DeserializedToken>(
                ContinuationToken.ToContinuationToken(source));

            result.Should().BeEquivalentTo(source);
        }