Bert.RateLimiters.Tests.FixedTokenBucketTests.ShouldThrottle_WhenCalledWithCumulativeNGreaterThanMaxSleepCumulativeNGreaterThanMax C# (CSharp) Method

ShouldThrottle_WhenCalledWithCumulativeNGreaterThanMaxSleepCumulativeNGreaterThanMax() private method

        public void ShouldThrottle_WhenCalledWithCumulativeNGreaterThanMaxSleepCumulativeNGreaterThanMax()
        {
            SystemTime.SetCurrentTimeUtc = () => new DateTime(2014, 2, 27, 0, 0, 0, DateTimeKind.Utc);
            var virtualNow = SystemTime.UtcNow;

            for (int i = 0; i < 3*CUMULATIVE; i++)
                bucket.ShouldThrottle(N_LESS_THAN_MAX);

            var before = bucket.ShouldThrottle(N_LESS_THAN_MAX);
            var tokensBefore = bucket.CurrentTokenCount;

            Assert.That(before, Is.True);
            Assert.That(tokensBefore, Is.LessThan(N_LESS_THAN_MAX));

            SystemTime.SetCurrentTimeUtc = () => virtualNow.AddSeconds(REFILL_INTERVAL);

            for (int i = 0; i < 3*CUMULATIVE; i++)
            {
                bucket.ShouldThrottle(N_LESS_THAN_MAX);
            }
            var after = bucket.ShouldThrottle(N_LESS_THAN_MAX);
            var tokensAfter = bucket.CurrentTokenCount;

            Assert.That(after, Is.True);
            Assert.That(tokensAfter, Is.LessThan(N_LESS_THAN_MAX));
        }