SnapshotUserApplicationTest.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Hotline.Api.Controllers;
  2. using Hotline.Application.Snapshot.Contracts;
  3. using Hotline.Caching.Interfaces;
  4. using Hotline.Identity.Accounts;
  5. using Hotline.Identity.Roles;
  6. using Hotline.Orders;
  7. using Hotline.Settings;
  8. using Hotline.Share.Dtos.Snapshot;
  9. using Hotline.Snapshot;
  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 XF.Domain.Cache;
  17. using XF.Domain.Repository;
  18. namespace Hotline.Tests.Application;
  19. public class SnapshotUserApplicationTest : TestBase
  20. {
  21. private readonly ISnapshotUserApplication _snapshotUserApplication;
  22. private readonly ISystemDicDataCacheManager _dicData;
  23. private readonly ICitizenRepository _citizenRepository;
  24. public SnapshotUserApplicationTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, ITypedCache<SystemSetting> cacheSettingData, ThirdAccounSupplierFactory thirdAccountDomainFactory, IServiceProvider serviceProvider, ISnapshotUserApplication snapshotUserApplication, ISystemDicDataCacheManager dicData, ICitizenRepository citizenRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository, cacheSettingData, thirdAccountDomainFactory, serviceProvider)
  25. {
  26. _snapshotUserApplication = snapshotUserApplication;
  27. _dicData = dicData;
  28. _citizenRepository = citizenRepository;
  29. }
  30. [Fact]
  31. public async Task SnapshotUserApplication_Test()
  32. {
  33. var dic = _dicData.SafetyType.First();
  34. var dicDataValue = dic.DicDataValue;
  35. var citizen = await _citizenRepository.Queryable()
  36. .LeftJoin<CitizenRelationSafetyType>((citizen, relation) => relation.CitizenId == citizen.Id)
  37. .Where((citizen, relation) => relation.Id == null)
  38. .FirstAsync();
  39. var addDto = new AddCitizenRelationSafetyTypeInDto
  40. {
  41. DicDataValue = dicDataValue,
  42. PhoneNumber = citizen.PhoneNumber,
  43. Name = citizen.Name
  44. };
  45. var relationId = await _snapshotUserApplication.AddCitizenRelationSafetyType(addDto, CancellationToken.None);
  46. relationId.ShouldNotBeNull();
  47. var inDto = new CitizenRelationSafetyTypeInDto
  48. {
  49. };
  50. var items = await _snapshotUserApplication.GetCitizenRelationSafetyType(inDto).ToListAsync();
  51. var item = items.FirstOrDefault(m => m.CitizenRelationSafetyTypeId == relationId);
  52. item.ShouldNotBeNull();
  53. item.Name.ShouldBe(addDto.Name);
  54. item.PhoneNumber.ShouldBe(addDto.PhoneNumber);
  55. item.SafetyTypeTxt.ShouldBe(dic.DicDataName);
  56. }
  57. }