public void ThrottleMode_must_allow_oversized_packets_through_by_loaning()
{
var bucket = new TokenBucket(100, 100, 0L, 20);
var bucket1 = bucket.TryConsumeTokens(0L, 30);
bucket1.Item1.ShouldBe(new TokenBucket(100, 100, 0L, 20));
bucket1.Item2.ShouldBeFalse();
var bucket2 = bucket1.Item1.TryConsumeTokens(HalfSecond, 110);
bucket2.Item1.ShouldBe(new TokenBucket(100, 100, HalfSecond, -40));
bucket2.Item2.ShouldBeTrue();
var bucket3 = bucket2.Item1.TryConsumeTokens(HalfSecond * 2, 20);
bucket3.Item1.ShouldBe(new TokenBucket(100, 100, HalfSecond, -40));
bucket3.Item2.ShouldBeFalse();
var bucket4 = bucket3.Item1.TryConsumeTokens(HalfSecond * 3,20);
bucket4.Item1.ShouldBe(new TokenBucket(100, 100, HalfSecond * 3, 40));
bucket4.Item2.ShouldBeTrue();
}
}