using Hotline.Api.Controllers; using Hotline.Application.Snapshot; using Hotline.Identity.Accounts; using Hotline.Identity.Roles; using Hotline.Settings; using Hotline.Share.Dtos.Snapshot; using Hotline.Snapshot.Interfaces; using Hotline.Users; using Mapster; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Shouldly; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using XF.Domain.Cache; using XF.Domain.Repository; namespace Hotline.Tests.Application; public class BiSnapshotApplicationTest : TestBase { private readonly IBiSnapshotApplication _biSnapshotApplication; public BiSnapshotApplicationTest(IAccountRepository accountRepository, IRepository roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository userRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService, IThirdAccountRepository thirdAccountRepository, ITypedCache cacheSettingData, IBiSnapshotApplication biSnapshotApplication) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService, thirdAccountRepository, cacheSettingData) { _biSnapshotApplication = biSnapshotApplication; } [Fact] public async Task GetCountyStatistics_Test() { var inDto = new CommunityStatisticsInDto { StartTime = DateTime.Now.AddDays(-30), EndTime = DateTime.Now }; var items = await _biSnapshotApplication.GetCommunityStatistics(inDto).ToListAsync(); var first = items.FirstOrDefault(); first.ShouldNotBeNull(); first.CommunityName.ShouldBe("自贡市"); var end = true; while (end) { var hasChild = items.Where(m => m.SumCount != 0).FirstOrDefault(); if (hasChild == null) { end = false; return; } inDto.CommunityCode = hasChild.CommunityCode; items = await _biSnapshotApplication.GetCommunityStatistics(inDto).ToListAsync(); if (hasChild.SumCount != 0) { var inDto2 = inDto.Adapt(); inDto2.CommunityFullName = hasChild.CommunityFullName; var details = await _biSnapshotApplication.GetCommunityStatisticsDetails(inDto2).ToListAsync(); details.Count.ShouldBe(hasChild.SumCount); } } } }