You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using NSubstitute;using NSubstitute.Exceptions;using Shentun.Peis.CardRegisters;using Shentun.Peis.Enums;using Shentun.Peis.GuidTypes;using Shentun.Peis.IncludeDetails;using Shentun.Peis.Models;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TencentCloud.Cpdp.V20190820.Models;using Volo.Abp.Domain.Repositories;using Volo.Abp.Uow;using Xunit;using Xunit.Abstractions;
namespace Shentun.Peis{ public class CardRegisterManagerTest : PeisDomainTestBase { private readonly IRepository<CardRegister, Guid> _repository; private readonly IRepository<CardBill, Guid> _cardBillRepository; private readonly ICardRegisterRepository _cardRegisterRepository; private readonly CardRegisterManager _manager; private readonly ITestOutputHelper _output; private readonly IUnitOfWorkManager _unitOfWorkManager; public CardRegisterManagerTest(ITestOutputHelper output) { _output = output; _repository = GetRequiredService<IRepository<CardRegister, Guid>>(); _cardRegisterRepository = GetRequiredService<ICardRegisterRepository>(); _cardBillRepository = GetRequiredService<IRepository<CardBill, Guid>>(); _manager = GetRequiredService<CardRegisterManager>();
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); }
[Fact] [UnitOfWork] public async void AddCardBillTest() { var id = new Guid("3a0d9464-e69e-67d5-c292-b2e11fb334b1"); using (IUnitOfWork unitOfWork = _unitOfWorkManager.Begin()) { var cardRegister = await _cardRegisterRepository.GetAsync(id, includeDetails: true); //var cardRegister = _cardRegisterRepository.WithDetails().Where(o => o.Id == id).FirstOrDefault();
//var cardRegister = await _cardRegisterRepository.GetAsync(id, includeDetails: true);
//var cardRegister = await _cardRegisterRepository.Get(new Guid("3a0d9464-e69e-67d5-c292-b2e11fb334b1"), includeDetails: true);
//await _repository.EnsureCollectionLoadedAsync(cardRegister, x => x.CardBills);
_output.WriteLine(cardRegister.CardBalance.ToString()); _output.WriteLine(cardRegister.CardBills.Count.ToString());
var cardBill = _manager.CreateCardBill(cardRegister, "01", CardBillFlag.Charge, Convert.ToDecimal(10)); try { await _repository.UpdateAsync(cardRegister); await _cardBillRepository.InsertAsync(cardBill); await unitOfWork.CompleteAsync(); } catch (Exception ex) { await unitOfWork.RollbackAsync(); }
_output.WriteLine(cardRegister.CardBalance.ToString()); }
}
[Fact] public async void AddCardBillNoUnitOfWorkTest() { var id = new Guid("3a0d9464-e69e-67d5-c292-b2e11fb334b1");
var cardRegister = await _cardRegisterRepository.GetAsync(id, includeDetails: true); //var cardRegister = _cardRegisterRepository.WithDetails().Where(o => o.Id == id).FirstOrDefault();
//var cardRegister = await _cardRegisterRepository.GetAsync(id, includeDetails: true);
//var cardRegister = await _cardRegisterRepository.Get(new Guid("3a0d9464-e69e-67d5-c292-b2e11fb334b1"), includeDetails: true);
//await _repository.EnsureCollectionLoadedAsync(cardRegister, x => x.CardBills);
_output.WriteLine(cardRegister.CardBalance.ToString()); _output.WriteLine(cardRegister.CardBills.Count.ToString());
var cardBill = _manager.CreateCardBill(cardRegister, "01", CardBillFlag.Refund, Convert.ToDecimal(-1000)); await _repository.UpdateAsync(cardRegister); await _cardBillRepository.InsertAsync(cardBill);
} /// <summary>
/// 要支持级联更新,必须使用工作单元UnitOfWork
/// </summary>
[Fact] //[UnitOfWork]
public async void AddCardBillByGetIdTest() { var id = new Guid("3a0d9464-e69e-67d5-c292-b2e11fb334b1");
using (IUnitOfWork unitOfWork = _unitOfWorkManager.Begin()) { var cardRegister = await _cardRegisterRepository.GetAsync(id, includeDetails: true); _output.WriteLine(cardRegister.CardBalance.ToString()); _output.WriteLine(cardRegister.CardBills.Count.ToString());
_manager.AddCardBill(cardRegister, "01", CardBillFlag.Charge, Convert.ToDecimal(100)); try { await _repository.UpdateAsync(cardRegister); await unitOfWork.CompleteAsync(); } catch (Exception ex) { await unitOfWork.RollbackAsync(); }
_output.WriteLine(cardRegister.CardBalance.ToString()); }
}
}}
|