public async Task PartitionKeyRangeGoneRetryPolicyWithNextRetryPolicy() { Mock <IDocumentClientRetryPolicy> nextRetryPolicyMock = new Mock <IDocumentClientRetryPolicy>(); nextRetryPolicyMock .Setup(m => m.ShouldRetryAsync(It.IsAny <ResponseMessage>(), It.IsAny <CancellationToken>())) .Returns(() => Task.FromResult <ShouldRetryResult>(ShouldRetryResult.RetryAfter(TimeSpan.FromDays(1)))) .Verifiable(); nextRetryPolicyMock .Setup(m => m.ShouldRetryAsync(It.IsAny <Exception>(), It.IsAny <CancellationToken>())) .Returns(() => Task.FromResult <ShouldRetryResult>(ShouldRetryResult.RetryAfter(TimeSpan.FromDays(1)))) .Verifiable(); PartitionKeyRangeGoneRetryPolicy retryPolicy = new PartitionKeyRangeGoneRetryPolicy(null, null, null, nextRetryPolicyMock.Object); ShouldRetryResult exceptionResult = await retryPolicy.ShouldRetryAsync(new Exception("", null), CancellationToken.None); Assert.IsNotNull(exceptionResult); Assert.IsTrue(exceptionResult.ShouldRetry); Assert.AreEqual(TimeSpan.FromDays(1), exceptionResult.BackoffTime); ShouldRetryResult messageResult = await retryPolicy.ShouldRetryAsync(new ResponseMessage(), CancellationToken.None); Assert.IsNotNull(exceptionResult); Assert.IsTrue(exceptionResult.ShouldRetry); Assert.AreEqual(TimeSpan.FromDays(1), exceptionResult.BackoffTime); }
public async Task PartitionKeyRangeGoneRetryPolicyWithoutNextRetryPolicy() { PartitionKeyRangeGoneRetryPolicy retryPolicy = new PartitionKeyRangeGoneRetryPolicy(null, null, null, null); ShouldRetryResult exceptionResult = await retryPolicy.ShouldRetryAsync(new Exception("", null), CancellationToken.None); Assert.IsNotNull(exceptionResult); Assert.IsFalse(exceptionResult.ShouldRetry); _ = await retryPolicy.ShouldRetryAsync(new ResponseMessage(), CancellationToken.None); Assert.IsNotNull(exceptionResult); Assert.IsFalse(exceptionResult.ShouldRetry); }