예제 #1
0
        public void AlwaysPurgesFirstTime()
        {
            int purgeCount = 0;
            var purger     = new RateLimitedPurger(new DummyPurger(() => { purgeCount++; }), 1000);

            purger.Purge();

            Assert.That(purgeCount, Is.EqualTo(1));
        }
예제 #2
0
        public void RateOfZeroAlwaysPurges()
        {
            int purgeCount = 0;
            var purger     = new RateLimitedPurger(new DummyPurger(() => { purgeCount++; }), 0);

            purger.Purge();
            purger.Purge();

            Assert.That(purgeCount, Is.EqualTo(2));
        }
예제 #3
0
        public void WaitsToPurge()
        {
            int purgeCount = 0;
            var purger     = new RateLimitedPurger(new DummyPurger(() => { purgeCount++; }), 1000);

            purger.Purge();
            Assert.That(purgeCount, Is.EqualTo(1));

            purger.Purge();
            Assert.That(purgeCount, Is.EqualTo(1));

            Thread.Sleep(1500);

            purger.Purge();
            Assert.That(purgeCount, Is.EqualTo(2));
        }
예제 #4
0
        public void DefaultMaxPurgeRate()
        {
            var purger = new RateLimitedPurger(new DummyPurger(() => { }));

            Assert.That(purger.MaxPurgeRate, Is.EqualTo(120 * 1000));
        }