using Shentun.Peis.CardRegisters; using Shentun.Peis.Enums; using Shentun.Peis.IncludeDetails; using Shentun.Peis.Models; using Shentun.Peis.Patients; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; using Volo.Abp.Uow; using Xunit; using Xunit.Abstractions; namespace Shentun.Peis { public class PatientManagerTest : PeisDomainTestBase { private readonly IRepository _repository; private readonly PatientManager _manager; private readonly ITestOutputHelper _output; private readonly IUnitOfWorkManager _unitOfWorkManager; public PatientManagerTest(ITestOutputHelper output) { _output = output; _repository = GetRequiredService>(); _manager = GetRequiredService(); _unitOfWorkManager = GetRequiredService(); } [Fact] public async Task CreateAsync() { using(var unitOfWork = _unitOfWorkManager.Begin()) { var patient = new Patient() { MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"), DisplayName = "Test", SexId = SexFlag.UnKnown, MaritalStatusId = MaritalStatusFlag.UnKnown, IdNo = "43062419790909931X" }; var newPatient = await _manager.CreateAsync(patient); await _repository.InsertAsync(newPatient); await unitOfWork.CompleteAsync(); } } /// /// 测试事务回滚 /// /// /// [Fact] public async Task CreateFaildAsync() { using (var unitOfWork = _unitOfWorkManager.Begin()) { var patient = new Patient() { MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"), DisplayName = "Test", SexId = SexFlag.UnKnown, MaritalStatusId = MaritalStatusFlag.UnKnown, IdNo = "43062419790909920X" }; var newPatient = await _manager.CreateAsync(patient); throw new Exception("中断"); await _repository.InsertAsync(newPatient); await unitOfWork.CompleteAsync(); } } [Fact] public async Task UpdateAsync() { using (var unitOfWork = _unitOfWorkManager.Begin()) { var sourcePatient = new Patient() { MedicalCenterId = new Guid("68f2d834-2bf0-4978-ad54-d2133c12a333"), DisplayName = "Test2", SexId = SexFlag.Female, MaritalStatusId = MaritalStatusFlag.Married, IdNo = "43062419790909920X" }; var targetPatient = await _repository.GetAsync(new Guid("3a119be6-d9aa-2e13-a764-0b363c60169d")); await _manager.UpdateAsync(sourcePatient,targetPatient); await _repository.UpdateAsync(targetPatient); await unitOfWork.CompleteAsync(); } } } }