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.
135 lines
5.1 KiB
135 lines
5.1 KiB
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());
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
}
|