public static List <T> GetMockDataSet <T>(MockDataEntity dataSet) where T : class
        {
            var fileName = Enum.GetName(typeof(MockDataEntity), dataSet);
            var path     = $"{Directory.GetCurrentDirectory()}/TestData/{fileName}.json";

            using (StreamReader file = File.OpenText(path))
            {
                JsonSerializer serializer = new JsonSerializer();
                List <T>       data       = (List <T>)serializer.Deserialize(file, typeof(List <T>));

                return(data);
            }
        }
        public static Mock <DbSet <T> > GetMockDbSet <T>(MockDataEntity dataSet) where T : class
        {
            var source    = GetMockDataSet <T>(dataSet);
            var queryable = source.AsQueryable <T>();

            var mockSet = new Mock <DbSet <T> >();

            mockSet.As <IQueryable <T> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <T> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <T> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <T> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());

            mockSet.Setup(m => m.Add(It.IsAny <T>())).Callback <T>((entity) => source.Add(entity));
            mockSet.Setup(m => m.Remove(It.IsAny <T>())).Callback <T>((T entity) => source.Remove(entity));

            return(mockSet);
        }