using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Moq; using Moq.Internals; using Moq.Language; using Moq.Protected; using OAuth2Study.Model; using OAuth2Study.IDal; using OAuth2Study.Dal.MsSql; using OAuth2Study.IBll; using OAuth2Study.Bll; namespace OAuth2Study.UnitTest { public class UserMoqFixture : IDisposable { public Mock mockDal; public Mock mockBll; public List users; public UserMoqFixture() { mockDal = new Mock(); mockBll = new Mock(); users = new List() { new User(){Id=1,Name="first",Password="123456", Age=1,Gender=0}, new User(){Id=2,Name="second",Password="123456", Age=2,Gender=0}, new User(){Id=3,Name="third",Password="123456", Age=3,Gender=0}, new User(){Id=4,Name="four",Password="123456", Age=4,Gender=0}, new User(){Id=5,Name="five",Password="123456", Age=5,Gender=0}, }; SetUserDal(); SetUserBll(); } private void SetUserDal() { mockDal.Setup(u => u.AddUser(It.Is(para => new List() {1,2,3,4,5 }.Contains(para.Id)))) .Returns((User user) => (true, user)); mockDal.Setup(u => u.UpdateUser(It.Is(para => new List() {1,2,3,4,5 }.Contains(para.Id)))) .Returns((User user) => (true, user)); mockDal.Setup(u => u.RemoveUser(It.Is(para => new List() { 1, 2, 3, 4, 5 }.Contains(para.Id)))) .Returns((User user) => (true)); mockDal.Setup(u => u.GetUser(It.IsAny())) .Returns((int userId) => (users.SingleOrDefault(q => q.Id == userId))); mockDal.Setup(u => u.ExitsByName(It.IsAny())) .Returns((string userName) => (users.Any(q => q.Name == userName))); mockDal.Setup(u => u.GetUsers()) .Returns(users.AsQueryable); } private void SetUserBll() { mockBll.Setup(u => u.AddUser(It.Is(para => new List() { 1, 2, 3, 4, 5 }.Contains(para.Id)))) .Returns((User user) => (true, user)); mockBll.Setup(u => u.UpdateUser(It.Is(para => new List() { 1, 2, 3, 4, 5 }.Contains(para.Id)))) .Returns((User user) => (true, user)); mockBll.Setup(u => u.RemoveUser(It.Is(para => new List() { 1, 2, 3, 4, 5 }.Contains(para.Id)))) .Returns((User user) => (true)); mockBll.Setup(u => u.GetUser(It.IsAny())) .Returns((int userId) => (users.SingleOrDefault(q => q.Id == userId))); mockBll.Setup(u => u.ExitsByName(It.IsAny())) .Returns((string userName) => (users.Any(q => q.Name == userName))); mockBll.Setup(u => u.GetUsers()) .Returns(users.AsQueryable); } public void Dispose() { } } }