using e_suite.Database.Core; using Microsoft.EntityFrameworkCore; using Moq; namespace e_suite.UnitTestCore; public class FakeRepository : IRepository { public async Task TransactionAsync(Func> action) { return await action(); } public async Task TransactionAsync(Func action) { await action(); } protected static DbSet GetQueryableMockDbSet(List sourceList) where T : class { var queryable = sourceList.AsQueryable(); var dbSet = new Mock>(); dbSet.As>().Setup(m => m.Provider).Returns(queryable.Provider); dbSet.As>().Setup(m => m.Expression).Returns(queryable.Expression); dbSet.As>().Setup(m => m.ElementType).Returns(queryable.ElementType); dbSet.As>().Setup(m => m.GetEnumerator()).Returns(() => queryable.GetEnumerator()); dbSet.Setup(d => d.Add(It.IsAny())).Callback((s) => sourceList.Add(s)); return dbSet.Object; } }