You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.1 KiB
C#

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<UserIDal> mockDal;
public Mock<UserIBll> mockBll;
public List<User> users;
public UserMoqFixture()
{
mockDal = new Mock<UserIDal>();
mockBll = new Mock<UserIBll>();
users = new List<User>()
{
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<User>(para => new List<int>() {1,2,3,4,5 }.Contains(para.Id))))
.Returns((User user) => (true, user));
mockDal.Setup(u => u.UpdateUser(It.Is<User>(para => new List<int>() {1,2,3,4,5 }.Contains(para.Id))))
.Returns((User user) => (true, user));
mockDal.Setup(u => u.RemoveUser(It.Is<User>(para => new List<int>() { 1, 2, 3, 4, 5 }.Contains(para.Id))))
.Returns((User user) => (true));
mockDal.Setup(u => u.GetUser(It.IsAny<int>()))
.Returns((int userId) => (users.SingleOrDefault(q => q.Id == userId)));
mockDal.Setup(u => u.ExitsByName(It.IsAny<string>()))
.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<User>(para => new List<int>() { 1, 2, 3, 4, 5 }.Contains(para.Id))))
.Returns((User user) => (true, user));
mockBll.Setup(u => u.UpdateUser(It.Is<User>(para => new List<int>() { 1, 2, 3, 4, 5 }.Contains(para.Id))))
.Returns((User user) => (true, user));
mockBll.Setup(u => u.RemoveUser(It.Is<User>(para => new List<int>() { 1, 2, 3, 4, 5 }.Contains(para.Id))))
.Returns((User user) => (true));
mockBll.Setup(u => u.GetUser(It.IsAny<int>()))
.Returns((int userId) => (users.SingleOrDefault(q => q.Id == userId)));
mockBll.Setup(u => u.ExitsByName(It.IsAny<string>()))
.Returns((string userName) => (users.Any(q => q.Name == userName)));
mockBll.Setup(u => u.GetUsers())
.Returns(users.AsQueryable);
}
public void Dispose()
{
}
}
}