public void it_doesnt_trigger_the_rate_limit_when_the_timeline_is_empty() { var timeline = MockRepository.GenerateStub <IEventTimeline>(); timeline.Stub(it => it.RecordEvent(Arg <DateTime> .Is.Anything)); timeline.Stub(it => it.GetLastEventDateAndTime()).Return(null); IPauseTime pauseTime = MockRepository.GenerateMock <IPauseTime>(); TrickleRateLimiter rateLimiter = new TrickleRateLimiter(timeline, pauseTime); rateLimiter.CheckAndEnforceRateLimit(DateTime.UtcNow); pauseTime.AssertWasNotCalled(it => it.Pause(Arg <TimeSpan> .Is.Anything)); }
public void it_doesnt_trigger_the_rate_limit_when_the_last_event_date_is_more_than_1_second_ago() { DateTime firstEventDateTime = new DateTime(2000, 1, 1, 12, 0, 0); DateTime secondEventDateTime = new DateTime(2000, 1, 1, 12, 0, 2); var timeline = MockRepository.GenerateStub <IEventTimeline>(); timeline.Stub(it => it.RecordEvent(Arg <DateTime> .Is.Anything)); timeline.Stub(it => it.GetLastEventDateAndTime()).Return(firstEventDateTime); IPauseTime pauseTime = MockRepository.GenerateMock <IPauseTime>(); TrickleRateLimiter rateLimiter = new TrickleRateLimiter(timeline, pauseTime); rateLimiter.CheckAndEnforceRateLimit(secondEventDateTime); pauseTime.AssertWasNotCalled(it => it.Pause(Arg <TimeSpan> .Is.Anything)); }