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));
}