PointsRecordApplicationTest.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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.Settings;
  7. using Hotline.Share.Dtos.Snapshot;
  8. using Hotline.Snapshot.IRepository;
  9. using Hotline.ThirdAccountDomainServices;
  10. using Hotline.ThirdAccountDomainServices.Interfaces;
  11. using Hotline.Users;
  12. using Microsoft.AspNetCore.Http;
  13. using Microsoft.Extensions.DependencyInjection;
  14. using Shouldly;
  15. using System;
  16. using System.Collections.Generic;
  17. using System.Linq;
  18. using System.Text;
  19. using System.Threading.Tasks;
  20. using XF.Domain.Authentications;
  21. using XF.Domain.Cache;
  22. using XF.Domain.Repository;
  23. namespace Hotline.Tests.Application;
  24. public class PointsRecordApplicationTest : TestBase
  25. {
  26. private readonly ISnapshotPointsApplication _pointsRecordApplication;
  27. private readonly ISnapshotApplication _snapshotApplication;
  28. private readonly ISessionContext _sessionContext;
  29. private readonly ICitizenRepository _citizenRepository;
  30. private readonly ISafetyTypeRepository _safetyTypeRepository;
  31. public PointsRecordApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, ITypedCache<SystemSetting> cacheSettingData, ThirdAccounSupplierFactory thirdAccountDomainFactory, ISnapshotPointsApplication pointsRecordApplication, ISnapshotApplication snapshotApplication, IServiceProvider serviceProvider, ISessionContext sessionContext, ICitizenRepository citizenRepository, ISafetyTypeRepository safetyTypeRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository, cacheSettingData, thirdAccountDomainFactory, serviceProvider)
  32. {
  33. _pointsRecordApplication = pointsRecordApplication;
  34. _snapshotApplication = snapshotApplication;
  35. _sessionContext = sessionContext;
  36. _citizenRepository = citizenRepository;
  37. _safetyTypeRepository = safetyTypeRepository;
  38. }
  39. [Fact]
  40. public async Task GetPointsItems_Test()
  41. {
  42. var inDto = new PointsItemsInDto
  43. {
  44. StartTime = DateTime.Now.AddDays(-1),
  45. EndTime = DateTime.Now
  46. };
  47. var items = await _pointsRecordApplication.GetPointsItems(inDto).ToListAsync();
  48. items.ShouldNotBeNull();
  49. }
  50. [Fact]
  51. public async Task UpdateIsSecurityMax_Test()
  52. {
  53. SetWeiXin();
  54. var inDto = new UpdateIsSecurityMaxAsync
  55. {
  56. UserId = _sessionContext.UserId,
  57. IsSecurityMax = false
  58. };
  59. await _pointsRecordApplication.UpdateIsSecurityMaxAsync(inDto, CancellationToken.None);
  60. var citizen = await _citizenRepository.Queryable()
  61. .Where(m => m.Id == inDto.UserId)
  62. .Includes(m => m.SafetyTypes)
  63. .FirstAsync();
  64. citizen.SafetyTypes.Any(m => m.Name == "安全卫士").ShouldBeFalse();
  65. inDto.IsSecurityMax = true;
  66. await _pointsRecordApplication.UpdateIsSecurityMaxAsync(inDto, CancellationToken.None);
  67. citizen = await _citizenRepository.Queryable()
  68. .Where(m => m.Id == inDto.UserId)
  69. .Includes(m => m.SafetyTypes)
  70. .FirstAsync();
  71. citizen.SafetyTypes.Any(m => m.Name == "安全卫士").ShouldBeTrue();
  72. }
  73. [Fact]
  74. public async Task GetPointsRank_Test()
  75. {
  76. SetWeiXin();
  77. var item = await _snapshotApplication.GetPointsRankAsync();
  78. item.ShouldNotBeNull();
  79. foreach (var a in item.Ranks)
  80. {
  81. var s = a.PhoneNumber;
  82. }
  83. }
  84. }