コード例 #1
0
    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 :)");
    }
コード例 #2
0
    public void WaitDoesPerformDoesPause()
    {
        // Arrange
        var backoffStrategy = new DefaultBackoffStrategy(new[]
        {
            TimeSpan.FromMilliseconds(500)
        }, new Options());

        // Act
        var stopwatch = Stopwatch.StartNew();

        backoffStrategy.Wait(CancellationToken.None);
        stopwatch.Stop();

        // Assert
        Assert.That(stopwatch.Elapsed, Is.GreaterThan(TimeSpan.FromMilliseconds(450)).And.LessThan(TimeSpan.FromMilliseconds(550)));
    }
コード例 #3
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));
        }