void GetNextChunk(InMemoryTimeoutPersister inMemoryTimeoutPersister)
 {
     for (var i = 0; i < 10; i++)
     {
         DateTime nextTimeToRunQuery;
         inMemoryTimeoutPersister.GetNextChunk(DateTime.MinValue, out nextTimeToRunQuery).ToList();   
     }
 }
 public void When_multiple_NextTimeToRunQuery_is_min_date()
 {
     DateTime nextTimeToRunQuery;
     var now = DateTime.UtcNow;
     var persister = new InMemoryTimeoutPersister();
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(2)
                   });
     var expectedDate = DateTime.Now.AddDays(1);
     persister.Add(new TimeoutData
                   {
                       Time = expectedDate
                   });
     persister.GetNextChunk(now, out nextTimeToRunQuery);
     Assert.AreEqual(expectedDate, nextTimeToRunQuery);
 }
 public void When_multiple_future_are_returned()
 {
     DateTime nextTime;
     var persister = new InMemoryTimeoutPersister();
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(-2)
                   });
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(-4)
                   });
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(-1)
                   });
     var nextChunk = persister.GetNextChunk(DateTime.Now.AddDays(-3), out nextTime);
     Assert.AreEqual(2, nextChunk.Count());
 }
 public void When_all_in_past_NextTimeToRunQuery_is_1_minute()
 {
     DateTime nextTimeToRunQuery;
     var now = DateTime.UtcNow;
     var persister = new InMemoryTimeoutPersister();
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(-1)
                   });
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(-3)
                   });
     persister.Add(new TimeoutData
                   {
                       Time = DateTime.Now.AddDays(-2)
                   });
     persister.GetNextChunk(now, out nextTimeToRunQuery);
     Assert.That(nextTimeToRunQuery, Is.EqualTo(now.AddMinutes(1)).Within(100).Milliseconds);
 }