public static DbSet <T> MockDbSet <T>(this IEnumerable <T> values, DbContextFakeWrapper wrapper) where T : class { return(new FakeSet <T>(values, wrapper)); }
private static DbContextFakeWrapper CreateContextWithTestData() { Role roleAdmin = new Role { Id = 1, Name = "Admin", Users = new List<User> { new User {Id = 1, Name = "John", RoleId = 1}, new User {Id = 2, Name = "Alex", RoleId = 1}, } }; Role roleUser = new Role { Id = 2, Name = "User", Users = new List<User> { new User {Id = 3, Name = "Matt", RoleId = 1}, new User {Id = 4, Name = "Mike", RoleId = 1}, } }; List<Role> roles = new List<Role> {roleAdmin, roleUser}; foreach (Role role in roles) { foreach (User user in role.Users) user.Role = role; } List<User> users = roles.SelectMany(r => r.Users).ToList(); DbContextFakeWrapper wrapper = new DbContextFakeWrapper(); DbSet<User> userSet = users.MockDbSet(wrapper); DbSet<Role> roleSet = roles.MockDbSet(wrapper); wrapper.ContextDouble.Setup(x => x.Set<User>()).Returns(() => userSet); wrapper.ContextDouble.Setup(x => x.Set<Role>()).Returns(() => roleSet); return wrapper; }
public FakeSet(IEnumerable <T> values, DbContextFakeWrapper wrapper) { this.wrapper = wrapper; this.values.AddRange(values); }
private IDbContextFactory GetFactory(DbContextFakeWrapper contextStub) { Mock<IDbContextFactory> factoryStub = new Mock<IDbContextFactory>(); factoryStub.Setup(f => f.CreateContext()).Returns(contextStub); return factoryStub.Object; }