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);
        }