示例#1
0
        private IDbContextFactory GetFactory(DbContextFakeWrapper contextStub)
        {
            Mock <IDbContextFactory> factoryStub = new Mock <IDbContextFactory>();

            factoryStub.Setup(f => f.CreateContext()).Returns(contextStub);
            return(factoryStub.Object);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        private static IDbContextFactory GetFactory()
        {
            DbContextFakeWrapper fakeWrapper = CreateContextWithTestData();

            return(fakeWrapper.ContextDouble.BuildFactoryStub());
        }