public void SyncFeedItemsTest() { var showRssItems = new List <ShowRssItem> { new ShowRssItem { Guid = "abcd" }, new ShowRssItem { Guid = "ijkl" } }; var showRssItemsQueryable = showRssItems.AsQueryable(); var mockSet = new Mock <DbSet <ShowRssItem> >(); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.Provider).Returns(showRssItemsQueryable.Provider); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.Expression).Returns(showRssItemsQueryable.Expression); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.ElementType).Returns(showRssItemsQueryable.ElementType); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.GetEnumerator()).Returns(showRssItemsQueryable.GetEnumerator()); var newItems = new List <ShowRssItem> { new ShowRssItem { Guid = "abcd" }, new ShowRssItem { Guid = "efgh" }, new ShowRssItem { Guid = "ijkl" }, new ShowRssItem { Guid = "mnop" } }; dbContext.SetupGet(c => c.ShowRssItems).Returns(mockSet.Object); var repo = new ShowRssItemRepository(logger.Object, dbContext.Object); repo.SyncFeedItems(newItems); dbContext.Verify(c => c.SaveChanges(), Times.Once); }
public void FindCompletedItemsTest(int timeWindow, int expectedNbItems) { var showRssItems = new List <ShowRssItem> { new ShowRssItem { Guid = "not-started" }, new ShowRssItem { Guid = "downloading", DownloadItem = new DownloadItem { State = DownloadState.Downloading } }, new ShowRssItem { Guid = "completed-4days-ago", DownloadItem = new DownloadItem { State = DownloadState.Completed, CompletedAt = DateTime.Now.AddDays(-4) } }, new ShowRssItem { Guid = "completed-3days-ago", DownloadItem = new DownloadItem { State = DownloadState.Completed, CompletedAt = DateTime.Now.AddDays(-3) } }, new ShowRssItem { Guid = "completed-2days-ago", DownloadItem = new DownloadItem { State = DownloadState.Completed, CompletedAt = DateTime.Now.AddDays(-2) } }, new ShowRssItem { Guid = "completed-1day-ago", DownloadItem = new DownloadItem { State = DownloadState.Completed, CompletedAt = DateTime.Now.AddDays(-1) } }, new ShowRssItem { Guid = "completed-now", DownloadItem = new DownloadItem { State = DownloadState.Completed, CompletedAt = DateTime.Now } } }; var showRssItemsQueryable = showRssItems.AsQueryable(); var mockSet = new Mock <DbSet <ShowRssItem> >(); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.Provider).Returns(showRssItemsQueryable.Provider); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.Expression).Returns(showRssItemsQueryable.Expression); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.ElementType).Returns(showRssItemsQueryable.ElementType); mockSet.As <IQueryable <ShowRssItem> >().Setup(m => m.GetEnumerator()).Returns(showRssItemsQueryable.GetEnumerator()); dbContext.SetupGet(c => c.ShowRssItems).Returns(mockSet.Object); var repo = new ShowRssItemRepository(logger.Object, dbContext.Object); var items = repo.FindRecentCompletedItems(timeWindow); Assert.AreEqual(expectedNbItems, items.Count); }