Пример #1
0
 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;
        }
Пример #3
0
 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;
 }