mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-20 14:16:45 +08:00
87 lines
2.5 KiB
C#
87 lines
2.5 KiB
C#
using System;
|
|
using NSubstitute;
|
|
using Util.Datas.UnitOfWorks;
|
|
using Util.Tests.XUnitHelpers;
|
|
using Xunit;
|
|
|
|
namespace Util.Tests.Datas.UnitOfWorks {
|
|
/// <summary>
|
|
/// 工作单元服务测试
|
|
/// </summary>
|
|
public class UnitOfWorkManagerTest {
|
|
/// <summary>
|
|
/// 工作单元
|
|
/// </summary>
|
|
private readonly IUnitOfWork _unitOfWork;
|
|
/// <summary>
|
|
/// 工作单元2
|
|
/// </summary>
|
|
private readonly IUnitOfWork _unitOfWork2;
|
|
/// <summary>
|
|
/// 工作单元服务
|
|
/// </summary>
|
|
private readonly UnitOfWorkManager _manager;
|
|
|
|
/// <summary>
|
|
/// 测试初始化
|
|
/// </summary>
|
|
public UnitOfWorkManagerTest() {
|
|
_unitOfWork = Substitute.For<IUnitOfWork>();
|
|
_unitOfWork2 = Substitute.For<IUnitOfWork>();
|
|
_manager = new UnitOfWorkManager();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册一个空工作单元
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestRegister_Null() {
|
|
AssertHelper.Throws<ArgumentNullException>( () => _manager.Register( null ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册一个工作单元并提交
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCommit_1() {
|
|
_manager.Register( _unitOfWork );
|
|
_manager.Commit();
|
|
_unitOfWork.Received(1).Commit();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册2个工作单元并提交
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCommit_2() {
|
|
_manager.Register( _unitOfWork );
|
|
_manager.Register( _unitOfWork2 );
|
|
_manager.Commit();
|
|
_unitOfWork.Received( 1 ).Commit();
|
|
_unitOfWork.Received( 1 ).Commit();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册一个工作单元并提交
|
|
/// </summary>
|
|
[Fact]
|
|
public async void TestCommitAsync_1() {
|
|
_manager.Register( _unitOfWork );
|
|
await _manager.CommitAsync();
|
|
await _unitOfWork.Received( 1 ).CommitAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 注册2个工作单元并提交
|
|
/// </summary>
|
|
[Fact]
|
|
public async void TestCommitAsync_2() {
|
|
_manager.Register( _unitOfWork );
|
|
_manager.Register( _unitOfWork2 );
|
|
await _manager.CommitAsync();
|
|
await _unitOfWork.Received( 1 ).CommitAsync();
|
|
await _unitOfWork.Received( 1 ).CommitAsync();
|
|
}
|
|
}
|
|
}
|