public void A_timed_cache_calls_source_on_first_use() { int calls = 0; var subject = RateLimitedAction.Of(() => { calls++; }); subject.YoungerThan(TimeSpan.Zero); Assert.That(calls, Is.EqualTo(1)); }
public void A_timed_cache_doesnt_call_source_on_second_use_within_duration() { int calls = 0; var subject = RateLimitedAction.Of(() => { calls++; }); subject.YoungerThan(TimeSpan.FromMinutes(1)); subject.YoungerThan(TimeSpan.FromMinutes(1)); Assert.That(calls, Is.EqualTo(1)); }
public void A_timed_cache_calls_source_on_second_use_outside_of_duration() { int calls = 0; var subject = RateLimitedAction.Of(() => { calls++; }); subject.YoungerThan(TimeSpan.FromSeconds(0.5)); Thread.Sleep(750); subject.YoungerThan(TimeSpan.FromSeconds(0.5)); Assert.That(calls, Is.EqualTo(2)); }