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 :)");
    }
Exemple #2
0
        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)));
    }
Exemple #4
0
        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));
        }
Exemple #5
0
        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));
        }