public void ScheduleAllRelevantItems_ForExpiration_When_Instantiated() { //Arrange var actionLabel = "NotifyMe!"; var itemToExpire1 = new Items { Label = actionLabel, Expiration = DateTime.Now.AddDays(-1), ItemType = 1 }; var itemToExpire2 = new Items { Label = "Also Notify Me!", Expiration = DateTime.Now.AddDays(1), ItemType = 1 }; var itemToNotExpire = new Items { Label = "Don't Notify Me!", Expiration = DateTime.Now.AddYears(1), ItemType = 1 }; var data = new List <Items> { itemToExpire1, itemToExpire2, itemToNotExpire }.AsQueryable(); var stExpectedConsoleOut1 = "Item " + itemToExpire1.Label + " expired at "; var stExpectedConsoleOut2 = "Item " + itemToExpire2.Label + " expired at "; var mockContext = SetUpContext(data); var TimersDict = new Dictionary <string, Timer>(); var loggerFactory = new TestLoggerFactory(); //Action var mockMonitor = SetUpMonitor(mockContext, loggerFactory); //Assert Assert.DoesNotContain(stExpectedConsoleOut1, loggerFactory.Logger.Message); Assert.Contains(stExpectedConsoleOut2, loggerFactory.Logger.Message); Assert.DoesNotContain(itemToNotExpire.Label, loggerFactory.Logger.Message); Assert.Equal(2, mockContext.Items.Count()); }
public void ScheduleATask_ToWriteToConsole_When_ScheduleExpiration_IsCalled() { //Arrange var actionLabel = "NotifyMe!"; var itemToExpire = new Items { Label = actionLabel, Expiration = DateTime.Now.AddDays(-1), ItemType = 1 }; var itemToNotExpire = new Items { Label = "Don't Notify Me!", Expiration = DateTime.Now.AddYears(1), ItemType = 1 }; var data = new List <Items> { itemToExpire, itemToNotExpire }.AsQueryable(); var stExpectedConsoleOut = "Item " + itemToExpire.Label + " expired at "; var mockContext = SetUpContext(data); var TimersDict = new Dictionary <string, Timer>(); var loggerFactory = new TestLoggerFactory(); var mockMonitor = SetUpMonitor(mockContext, loggerFactory); //Action mockMonitor.ScheduleExpiration(itemToExpire); mockMonitor.ScheduleExpiration(itemToNotExpire); //Assert Assert.True(mockMonitor.TimerReferences.ContainsKey(itemToExpire.Label)); Assert.Contains(stExpectedConsoleOut, loggerFactory.Logger.Message); Assert.DoesNotContain(itemToNotExpire.Label, loggerFactory.Logger.Message); Assert.Equal(1, mockContext.Items.Count()); }