110,539
社区成员
发帖
与我相关
我的任务
分享
public interface IUnitOfWork
{
int SaveChanges();
}
public class UnitOfWork : IUnitOfWork
{
public int SaveChanges()
{
return TaskDBContext.SaveChanges();
}
}
public interface IUserInfoRepository : IRepository<UserInfo>
{
}
public class UserInfoRepository : RepositoryBase<UserInfo>, IUserInfoRepository
{
public UserInfoRepository(IDatabaseFactory dataBaseFactory)
: base(dataBaseFactory)
{
}
}
public interface IUserInfoServices
{
bool UserInfo_Insert(UserInfo userInfo);
}
public class UserInfoServices : IUserInfoServices
{
private readonly IUserInfoRepository userInfoRepository;
private readonly IUnitOfWork unitOfWork;
public UserInfoServices(IUserInfoRepository userinfoRepository, IUnitOfWork unitOfWork)
{
this.userInfoRepository = userinfoRepository;
this.unitOfWork = unitOfWork;
}
public bool UserInfo_Insert(UserInfo userInfo)
{
userInfoRepository.Add(userInfo);
return unitOfWork.SaveChanges() == 1;
}
}
public static IUnitOfWork MockUnitOfWork(List<UserInfo> userInfo)
{
var mockUnitOfWork = new Mock<IUnitOfWork>();
mockUnitOfWork.Setup(x => x.SaveChanges()).Callback<UserInfo>((s) => userInfo.Add(s));
return mockUnitOfWork.Object;
}
/// <summary>
///UserInfo_Insert 的测试
///</summary>
[TestMethod()]
public void UserInfo_InsertTest()
{
UserInfo userInfo = new UserInfo() { UserId = 1, UserName = "Test", Pwd = "oooooo", Email = "email@email.com" };
List<UserInfo> userInfos = new List<UserInfo>();
int userCount = userInfos.Count;
var userInfoRepositoryMock = new Mock<IUserInfoRepository>();
var unitOfWorkMock = MockUnitOfWork(userInfos);
var userInfoServicesMock = new Mock<IUserInfoServices>();
var userInfoServices = new UserInfoServices(userInfoRepositoryMock.Object, unitOfWorkMock);
userInfoServicesMock.Setup(o => o.UserInfo_Insert(It.IsAny<UserInfo>())).Returns(true);
userInfoServices.UserInfo_Insert(userInfo);
Assert.AreEqual(userInfos.Count, 2);
}
mockUnitOfWork.Setup(x => x.SaveChanges()).Callback<UserInfo>((s) => userInfo.Add(s));