public void BacksOffAsItShould() { var backoffStrategy = new DefaultBackoffStrategy(new[] { TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(500), TimeSpan.FromMilliseconds(1000), }, new Options()); Printt("Starting"); var stopwatch = Stopwatch.StartNew(); var previousElapsed = TimeSpan.Zero; while (stopwatch.Elapsed < TimeSpan.FromSeconds(5)) { backoffStrategy.Wait(CancellationToken.None); var waitTime = stopwatch.Elapsed - previousElapsed; Printt($"Waited {waitTime}"); previousElapsed = stopwatch.Elapsed; } Printt("Done :)"); }
public void Default_strategy_is(int expectedDelay, int forRetry) { var backoffStrategy = new DefaultBackoffStrategy(MaxBackoffMilliseconds); backoffStrategy .GetDelayMilliseconds(forRetry) .ShouldBe(expectedDelay); }
public async Task WaitAsyncDoesPause() { // Arrange var backoffStrategy = new DefaultBackoffStrategy(new[] { TimeSpan.FromMilliseconds(500) }, new Options()); // Act var stopwatch = Stopwatch.StartNew(); await backoffStrategy.WaitAsync(CancellationToken.None); stopwatch.Stop(); // Assert Assert.That(stopwatch.Elapsed, Is.GreaterThan(TimeSpan.FromMilliseconds(450)).And.LessThan(TimeSpan.FromMilliseconds(550))); }
public void WaitDoesPerformDoesPause() { // Arrange var backoffStrategy = new DefaultBackoffStrategy(new[] { TimeSpan.FromMilliseconds(500) }); // Act var stopwatch = Stopwatch.StartNew(); backoffStrategy.Wait(CancellationToken.None); stopwatch.Stop(); // Assert Assert.GreaterOrEqual(stopwatch.Elapsed, TimeSpan.FromMilliseconds(500)); }
public async Task WaitAsyncDoesPause() { // Arrange var backoffStrategy = new DefaultBackoffStrategy(new[] { TimeSpan.FromMilliseconds(500) }); // Act var stopwatch = Stopwatch.StartNew(); await backoffStrategy.WaitAsync(); stopwatch.Stop(); // Assert Assert.GreaterOrEqual(stopwatch.Elapsed, TimeSpan.FromMilliseconds(500)); }