RedPackApplicationTest.cs 4.2 KB

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