RedPackApplicationTest.cs 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using Hotline.Api.Controllers;
  2. using Hotline.Application.Snapshot;
  3. using Hotline.Identity.Accounts;
  4. using Hotline.Identity.Roles;
  5. using Hotline.Share.Dtos.Snapshot;
  6. using Hotline.Share.Enums.Snapshot;
  7. using Hotline.Snapshot.Interfaces;
  8. using Hotline.Users;
  9. using Microsoft.AspNetCore.Http;
  10. using Microsoft.Extensions.DependencyInjection;
  11. using Shouldly;
  12. using XF.Domain.Repository;
  13. namespace Hotline.Tests.Application;
  14. public class RedPackApplicationTest : TestBase
  15. {
  16. private readonly IRedPackApplication _redPackApplication;
  17. private readonly IRedPackRecordRepository _redPackRecordRepository;
  18. public RedPackApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, IRedPackApplication redPackApplication, IRedPackRecordRepository redPackRecordRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository)
  19. {
  20. _redPackApplication = redPackApplication;
  21. _redPackRecordRepository = redPackRecordRepository;
  22. }
  23. /// <summary>
  24. /// 获取审核集合
  25. /// 获取审核短信模板
  26. /// 审核通过
  27. /// 获取红包记录
  28. /// </summary>
  29. /// <returns></returns>
  30. [Fact]
  31. public async Task AuditRedPackAudit_Test()
  32. {
  33. var items = await _redPackApplication.GetRedPackAuditItems(new SnapshotOrderAuditItemsInDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0)).ToListAsync();
  34. var audit = items.First();
  35. var smsTemplate = await _redPackApplication.GetRedPackAuditSMSTemplateAsync(new GetRedPackAuditSMSTemplateInDto(audit.OrderId, ESnapshotSMSStatus.Agree));
  36. var inDto = new UpdateRedPackAuditInDto
  37. {
  38. Status = ESnapshotSMSStatus.Agree,
  39. Opinion = "单元测试" + DateTime.Now.ToShortDateString(),
  40. SMSTemplateId = smsTemplate.First().Id,
  41. IsSendSms = true,
  42. RedPackAuditId = audit.Id,
  43. };
  44. await _redPackApplication.AuditRedPackAuditAsync(inDto);
  45. var suInDto = new UpdateRedPackRecordInDto
  46. {
  47. RedPackAuditId = audit.Id,
  48. Name = "单元测试Name",
  49. BankCardNo = "单元测试银行号",
  50. OpenBank = "单元测试开户行",
  51. ReplenishAmount = 100.01,
  52. ReplenishTime = DateTime.Now,
  53. ReplenishRemark = "单元测试补发备注",
  54. IsSendSMS = false,
  55. ReplenishType = "%15",
  56. ReplenishTypeId = "1",
  57. };
  58. await _redPackApplication.UpdateRedPackRecordAsync(suInDto);
  59. items = await _redPackApplication.GetRedPackAuditItems(new SnapshotOrderAuditItemsInDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1)).ToListAsync();
  60. items.Any(m => m.Id == audit.Id).ShouldBeTrue();
  61. var record = await _redPackRecordRepository.Queryable()
  62. .Where(m => m.OrderId == audit.OrderId)
  63. .FirstAsync();
  64. record.ShouldNotBeNull();
  65. var recordItems = await _redPackApplication.GetRedPackRecordItems(new SnapshotRedPackRecordItemsInDto { Status =2}).ToListAsync();
  66. recordItems.Count.ShouldNotBe(0);
  67. var redPackRecord = recordItems.First();
  68. var redPackRecordEntity = await _redPackRecordRepository.GetAsync(redPackRecord.Id);
  69. redPackRecordEntity.PickupStatus = ERedPackPickupStatus.Received;
  70. redPackRecordEntity.DistributionState = EReadPackSendStatus.Successful;
  71. redPackRecordEntity.ReceiveTime = DateTime.Now;
  72. await _redPackRecordRepository.UpdateAsync(redPackRecordEntity);
  73. var sendRecordItems = await _redPackApplication.GetRedPackRecordDetail(new SnapshotRedPackRecordSendInDto
  74. {
  75. IsReceive = true,
  76. }).ToListAsync();
  77. sendRecordItems.Count.ShouldNotBe(0);
  78. }
  79. }