|
@@ -6,7 +6,9 @@ using Hotline.Identity.Roles;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Share.Dtos.Snapshot;
|
|
|
+using Hotline.Share.Tools;
|
|
|
using Hotline.Snapshot;
|
|
|
+using Hotline.Snapshot.IRepository;
|
|
|
using Hotline.ThirdAccountDomainServices;
|
|
|
using Hotline.ThirdAccountDomainServices.Interfaces;
|
|
|
using Hotline.Users;
|
|
@@ -23,40 +25,45 @@ public class SnapshotUserApplicationTest : TestBase
|
|
|
private readonly ISnapshotUserApplication _snapshotUserApplication;
|
|
|
private readonly ISystemDicDataCacheManager _dicData;
|
|
|
private readonly ICitizenRepository _citizenRepository;
|
|
|
- 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)
|
|
|
+ private readonly ISafetyTypeRepository _safetyTypeRepository;
|
|
|
+ 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, ISafetyTypeRepository safetyTypeRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository, cacheSettingData, thirdAccountDomainFactory, serviceProvider)
|
|
|
{
|
|
|
_snapshotUserApplication = snapshotUserApplication;
|
|
|
_dicData = dicData;
|
|
|
_citizenRepository = citizenRepository;
|
|
|
+ _safetyTypeRepository = safetyTypeRepository;
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
|
public async Task SnapshotUserApplication_Test()
|
|
|
{
|
|
|
- var dic = _dicData.SafetyType.First();
|
|
|
- var dicDataValue = dic.DicDataValue;
|
|
|
+ var newSafetyType = new SafetyType { Name = "安全卫士" };
|
|
|
+ var safetyType = await _safetyTypeRepository.Queryable().Where(m => m.Name == newSafetyType.Name).FirstAsync();
|
|
|
+ if (newSafetyType == null)
|
|
|
+ safetyType.Id = await _safetyTypeRepository.AddAsync(newSafetyType);
|
|
|
+
|
|
|
var citizen = await _citizenRepository.Queryable()
|
|
|
.LeftJoin<CitizenRelationSafetyType>((citizen, relation) => relation.CitizenId == citizen.Id)
|
|
|
.Where((citizen, relation) => relation.Id == null)
|
|
|
.FirstAsync();
|
|
|
var addDto = new AddCitizenRelationSafetyTypeInDto
|
|
|
{
|
|
|
- DicDataValue = dicDataValue,
|
|
|
- PhoneNumber = citizen.PhoneNumber,
|
|
|
- Name = citizen.Name
|
|
|
+ CitizenIds = [citizen.Id],
|
|
|
+ SafetyTypeId = safetyType.Id,
|
|
|
};
|
|
|
|
|
|
- var relationId = await _snapshotUserApplication.AddCitizenRelationSafetyType(addDto, CancellationToken.None);
|
|
|
- relationId.ShouldNotBeNull();
|
|
|
+ await _snapshotUserApplication.AddCitizenRelationSafetyType(addDto, CancellationToken.None);
|
|
|
|
|
|
var inDto = new CitizenRelationSafetyTypeInDto
|
|
|
{
|
|
|
+ SafetyTypeId = safetyType.Id
|
|
|
};
|
|
|
var items = await _snapshotUserApplication.GetCitizenRelationSafetyType(inDto).ToListAsync();
|
|
|
- var item = items.FirstOrDefault(m => m.CitizenRelationSafetyTypeId == relationId);
|
|
|
+ var item = items.FirstOrDefault(m => m.CitizenId == citizen.Id && m.SafetyTypeId == safetyType.Id);
|
|
|
item.ShouldNotBeNull();
|
|
|
- item.Name.ShouldBe(addDto.Name);
|
|
|
- item.PhoneNumber.ShouldBe(addDto.PhoneNumber);
|
|
|
- item.SafetyTypeTxt.ShouldBe(dic.DicDataName);
|
|
|
+ item.SafetyTypeName.ShouldBe(safetyType.Name);
|
|
|
+ item.SafetyTypeId.ShouldBe(safetyType.Id);
|
|
|
+ item.CitizenId.ShouldBe(citizen.Id);
|
|
|
+ item.CitizenName.ShouldBe(citizen.Name);
|
|
|
}
|
|
|
}
|