public void Remove_AllItems_UpdatesDictionariesAndTimer() { // Arrange var now = DateTime.UtcNow; var timer = CreateTimer(now); var log = new Mock <IServiceLogRepository>(); var timeoutManager = new TimeoutManager <int>(timer.Object, log.Object); DateTime timeout1 = now.AddMinutes(20.0); DateTime timeout2 = now.AddMinutes(10.0); timeoutManager.Insert(1, timeout1, null); timeoutManager.Insert(2, timeout2, null); // Act timeoutManager.Remove(2); timeoutManager.Remove(1); // Assert Assert.AreEqual(0, timeoutManager.Items.Count); Assert.AreEqual(0, timeoutManager.TimeoutsByItem.Count); Assert.IsFalse(timer.Object.Enabled); }
public void Remove_NonExistantItems_HasNoEffect() { // Arrange var now = DateTime.UtcNow; var timer = CreateTimer(now); var log = new Mock <IServiceLogRepository>(); var timeoutManager = new TimeoutManager <int>(timer.Object, log.Object); DateTime timeout1 = now.AddMinutes(20.0); DateTime timeout2 = now.AddMinutes(10.0); timeoutManager.Insert(1, timeout1, null); timeoutManager.Insert(2, timeout2, null); // Act timeoutManager.Remove(3); // Assert Assert.AreEqual(2, timeoutManager.Items.Count); Assert.AreEqual(2, timeoutManager.TimeoutsByItem.Count); Assert.AreEqual((timeout2 - now).TotalMilliseconds + TimerWrapper.ExtraInterval, timer.Object.Interval); Assert.IsTrue(timer.Object.Enabled); }