private IDbContextFactory GetFactory(DbContextFakeWrapper contextStub) { Mock <IDbContextFactory> factoryStub = new Mock <IDbContextFactory>(); factoryStub.Setup(f => f.CreateContext()).Returns(contextStub); return(factoryStub.Object); }
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); }
private void ParamTest__GetEntities_EntitiesExists_LoadedEntitiesIntercepted( Expression <Func <IInterceptorsResolver, IEnumerable <IEntityInterceptor> > > getInterceptorsFunction) { InterceptorDouble interceptorMock = new InterceptorDouble(); IInterceptorsResolver resolverStub = GetResolver(getInterceptorsFunction, interceptorMock); DbContextFakeWrapper contextStub = CreateContextWithTestData(); IDbContextFactory factory = this.GetFactory(contextStub); IRepository rep = this.GetTarget(factory, resolverStub); User u = rep.GetEntities <User>().First(); this.AssertInterceptedOnLoad(interceptorMock, u); }
public void Dispose_ContextUsed_ContextDisposed() { DbContextFakeWrapper contextFakeWrapper = CreateContextWithTestData(); IDbContextFactory factory = this.GetFactory(contextFakeWrapper); IInterceptorsResolver resolver = GetEmptyInterceptors(); IRepository repository = this.GetTarget(factory, resolver); var u = repository.GetEntities <User>().First(); ((IDisposable)repository).Dispose(); Assert.IsTrue(contextFakeWrapper.WasDisposed); }
private static IDbContextFactory GetFactory() { DbContextFakeWrapper fakeWrapper = CreateContextWithTestData(); return(fakeWrapper.ContextDouble.BuildFactoryStub()); }