internal static Mock <DbSet <Journal> > MockDbSetJournal() { var mockDbSetJournal = new Mock <DbSet <Journal> >(); //Create a fluent class if needed, ALWAYS USE THE FUNC<> OVER LOAD TO REFLECT THE CHANGES IN UNDERLYING DATA mockDbSetJournal.As <IQueryable <Journal> >().Setup(m => m.Provider).Returns(() => { return(JournalData.AsQueryable().Provider); }); mockDbSetJournal.As <IQueryable <Journal> >().Setup(m => m.Expression).Returns(() => { return(JournalData.AsQueryable().Expression); }); mockDbSetJournal.As <IQueryable <Journal> >().Setup(m => m.ElementType).Returns(() => { return(JournalData.AsQueryable().ElementType); }); mockDbSetJournal.As <IQueryable <Journal> >().Setup(m => m.GetEnumerator()).Returns(() => { return(JournalData.AsQueryable().GetEnumerator()); }); mockDbSetJournal.Setup(m => m.Include(It.IsAny <string>())).Returns(() => { return(mockDbSetJournal.Object); }); var captured = mockDbSetJournal; mockDbSetJournal.Setup(m => m.Add(It.IsAny <Journal>())).Returns <Journal>(j => { JournalData.Add(j); return(new Journal { Id = captured.Object.Count() + 1 }); }); return(mockDbSetJournal); }