InviteCodeApplicationTest.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Hotline.Api.Controllers;
  2. using Hotline.Application.Snapshot.Contracts;
  3. using Hotline.Identity.Accounts;
  4. using Hotline.Identity.Roles;
  5. using Hotline.Orders;
  6. using Hotline.Repository.SqlSugar.Snapshot;
  7. using Hotline.Settings;
  8. using Hotline.Share.Dtos.Snapshot;
  9. using Hotline.Snapshot.IRepository;
  10. using Hotline.ThirdAccountDomainServices;
  11. using Hotline.ThirdAccountDomainServices.Interfaces;
  12. using Hotline.Users;
  13. using Microsoft.AspNetCore.Http;
  14. using Microsoft.Extensions.DependencyInjection;
  15. using Shouldly;
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Threading.Tasks;
  21. using XF.Domain.Authentications;
  22. using XF.Domain.Cache;
  23. using XF.Domain.Repository;
  24. namespace Hotline.Tests.Application;
  25. public class InviteCodeApplicationTest : TestBase
  26. {
  27. private readonly IInviteCodeApplication _inviteCodeApplication;
  28. private readonly ISnapshotApplication _snapshotApplication;
  29. private readonly IInviteCodeRepository _inviteCodeRepository;
  30. private readonly ISessionContext _sessionContext;
  31. private readonly IInviteCodeRecordRepository _inviteCodeRecordRepository;
  32. private readonly ICitizenRepository _citizenRepository;
  33. public InviteCodeApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, IInviteCodeApplication inviteCodeApplication, ISnapshotApplication snapshotApplication, IInviteCodeRepository inviteCodeRepository, ISessionContext sessionContext, IInviteCodeRecordRepository inviteCodeRecordRepository, ITypedCache<SystemSetting> cacheSettingData, ThirdAccounSupplierFactory thirdAccountDomainFactory, ICitizenRepository citizenRepository, IServiceProvider serviceProvider) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository, cacheSettingData, thirdAccountDomainFactory, serviceProvider)
  34. {
  35. _inviteCodeApplication = inviteCodeApplication;
  36. _snapshotApplication = snapshotApplication;
  37. this._inviteCodeRepository = inviteCodeRepository;
  38. _sessionContext = sessionContext;
  39. _inviteCodeRecordRepository = inviteCodeRecordRepository;
  40. _citizenRepository = citizenRepository;
  41. }
  42. [Fact]
  43. public async Task InviteCode_Test()
  44. {
  45. var inDto = new AddInviteCodeInDto
  46. {
  47. OrgName = "测试部门" + DateTime.Now.ToString("ss"),
  48. BeginCode = 100,
  49. EndCode = 200,
  50. };
  51. var id = await _inviteCodeApplication.AddInviteCodeAsync(inDto);
  52. var items = _inviteCodeApplication.GetInviteCodeItems().ToList();
  53. items.Count.ShouldNotBe(0);
  54. await _inviteCodeRepository.RemoveAsync(id);
  55. SetWeiXin();
  56. await _citizenRepository.Updateable()
  57. .SetColumns(m => m.InvitationCode, null)
  58. .Where(m => m.Id == _sessionContext.UserId)
  59. .ExecuteCommandAsync();
  60. await _inviteCodeRecordRepository.Removeable().Where(m => m.InviteCode == "110").ExecuteCommandAsync();
  61. await _snapshotApplication.SaveInvitationCodeAsync(new SaveInvitationCodeInDto { InvitationCode = "110"});
  62. var statics = await _inviteCodeApplication.GetInviteCodeStatisticAsync(new GetInviteCodeStatisticInDto
  63. {
  64. StartTime = DateTime.Now.AddDays(-1),
  65. EndTime = DateTime.Now
  66. }).ToListAsync();
  67. statics.Count.ShouldNotBe(0);
  68. }
  69. }