public async Task ExecutionWithoutRetry() { RetryHandler retryHandler = new RetryHandler(5, 15, 7, false); retryHandler .ExcludeForRetry <NullReferenceException>(); short retryCount = -1; short errorCount = 0; await retryHandler.ExecuteAsync(async() => { retryCount++; await Task.Delay(20); throw new NullReferenceException(); }, async (exception, retryIndex, retryLimit) => { errorCount++; await Task.Delay(10); Assert.NotNull(exception); Assert.Equal(0, retryIndex); Assert.Equal(0, retryLimit); }); Assert.Equal(0, retryCount); Assert.Equal(1, errorCount); }
public void ExceptionExclusion() { RetryHandler retryHandler = new RetryHandler(5, 15, 7, false); retryHandler .ExcludeForRetry <TimeoutException>() .ExcludeForRetry <NullReferenceException>(); Assert.False(retryHandler.IsForRetry(new TimeoutException())); Assert.False(retryHandler.IsForRetry(new NullReferenceException())); Assert.True(retryHandler.IsForRetry(new ArgumentNullException())); }