RedPackApplicationTest.cs 4.3 KB

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