namespace Hotline.Tests.Application
{
    //public class SnapshotApplicationTest
    //{
    //    private readonly Mock<IThirdIdentiyService> _thirdLoginServiceMock;
    //    private readonly Mock<IIndustryRepository> _industryRepositoryMock;
    //    private readonly Mock<ISnapshotBulletinRepository> _bulletinRepositoryMock;
    //    private readonly Mock<ISessionContext> _sessionContextMock;
    //    private readonly Mock<IRepository<RedPackRecord>> _redPackRecordRepositoryMock;
    //    private readonly Mock<IRepository<Order>> _orderRepositoryMock;
    //    private readonly Mock<IThirdAccountRepository> _thirdAccountRepositoryMock;
    //    private readonly Mock<IOrderSnapshotRepository> _orderSnapshotRepositoryMock;
    //    private readonly Mock<ISystemSettingCacheManager> _systemSettingCacheManagerMock;
    //    private readonly Mock<ISystemAreaDomainService> _systemAreaDomainServiceMock;
    //    private readonly Mock<IFileRepository> _fileRepositoryMock;
    //    private readonly Mock<ISystemDicDataCacheManager> _systemDicDataCacheManagerMock;
    //    private readonly Mock<ISnapshotOrderPublishRepository> _snapshotOrderPublishRepositoryMock;
    //    private readonly Mock<IRepository<WorkflowTrace>> _workflowTraceRepositoryMock;
    //    private readonly Mock<IPractitionerRepository> _practitionerRepositoryMock;
    //    private readonly Mock<IRepository<SystemArea>> _systemAreaRepositoryMock;
    //    private readonly Mock<IVolunteerRepository> _volunteerRepositoryMock;
    //    private readonly Mock<IVolunteerReportRepository> _volunteerReportRepositoryMock;
    //    private readonly Mock<ISystemLogRepository> _systemLogMock;
    //    private readonly Mock<IGuiderSystemService> _guiderSystemServiceMock;
    //    private readonly Mock<ICapPublisher> _capPublisherMock;
    //    private readonly Mock<Publisher> _publisherMock;
    //    private readonly Mock<IGuiderInfoRepository> _guiderInfoRepositoryMock;
    //    private readonly Mock<IFileDomainService> _fileDomainServiceMock;

    //    private readonly DefaultSnapshotApplication _snapshotApplication;

    //    public SnapshotApplicationTest()
    //    {
    //        _thirdLoginServiceMock = new Mock<IThirdIdentiyService>();
    //        _industryRepositoryMock = new Mock<IIndustryRepository>();
    //        _bulletinRepositoryMock = new Mock<ISnapshotBulletinRepository>();
    //        _sessionContextMock = new Mock<ISessionContext>();
    //        _redPackRecordRepositoryMock = new Mock<IRepository<RedPackRecord>>();
    //        _orderRepositoryMock = new Mock<IRepository<Order>>();
    //        _thirdAccountRepositoryMock = new Mock<IThirdAccountRepository>();
    //        _orderSnapshotRepositoryMock = new Mock<IOrderSnapshotRepository>();
    //        _systemSettingCacheManagerMock = new Mock<ISystemSettingCacheManager>();
    //        _systemAreaDomainServiceMock = new Mock<ISystemAreaDomainService>();
    //        _fileRepositoryMock = new Mock<IFileRepository>();
    //        _systemDicDataCacheManagerMock = new Mock<ISystemDicDataCacheManager>();
    //        _snapshotOrderPublishRepositoryMock = new Mock<ISnapshotOrderPublishRepository>();
    //        _workflowTraceRepositoryMock = new Mock<IRepository<WorkflowTrace>>();
    //        _practitionerRepositoryMock = new Mock<IPractitionerRepository>();
    //        _systemAreaRepositoryMock = new Mock<IRepository<SystemArea>>();
    //        _volunteerRepositoryMock = new Mock<IVolunteerRepository>();
    //        _volunteerReportRepositoryMock = new Mock<IVolunteerReportRepository>();
    //        _systemLogMock = new Mock<ISystemLogRepository>();
    //        _guiderSystemServiceMock = new Mock<IGuiderSystemService>();
    //        _capPublisherMock = new Mock<ICapPublisher>();
    //        _publisherMock = new Mock<Publisher>();
    //        _guiderInfoRepositoryMock = new Mock<IGuiderInfoRepository>();
    //        _fileDomainServiceMock = new Mock<IFileDomainService>();

    //    _snapshotApplication = new DefaultSnapshotApplication(
    //            _thirdLoginServiceMock.Object,
    //            _industryRepositoryMock.Object,
    //            _bulletinRepositoryMock.Object,
    //            _sessionContextMock.Object,
    //            _redPackRecordRepositoryMock.Object,
    //            _orderRepositoryMock.Object,
    //            _thirdAccountRepositoryMock.Object,
    //            _orderSnapshotRepositoryMock.Object,
    //            _systemSettingCacheManagerMock.Object,
    //            _systemAreaDomainServiceMock.Object,
    //            _fileRepositoryMock.Object,
    //            _systemDicDataCacheManagerMock.Object,
    //            _snapshotOrderPublishRepositoryMock.Object,
    //            _workflowTraceRepositoryMock.Object,
    //            _practitionerRepositoryMock.Object,
    //            _systemAreaRepositoryMock.Object,
    //            _volunteerRepositoryMock.Object,
    //            _volunteerReportRepositoryMock.Object,
    //            _systemLogMock.Object,
    //            _guiderSystemServiceMock.Object,
    //            _capPublisherMock.Object,
    //            _publisherMock.Object,
    //            _guiderInfoRepositoryMock.Object,
    //            _fileDomainServiceMock.Object,
    //            null,
    //            null,
    //            null,
    //            null,
    //            null,
    //            null,
    //            null
    //        );
    //    }

    //    [Fact]
    //    public async Task GetDeclareAsync_WithValidId_ReturnsDeclareBaseOutDto()
    //    {
    //        // Arrange
    //        var id = "123";
    //        var cancellationToken = CancellationToken.None;
    //        var industry = new Industry { Id = id, IndustryType = EIndustryType.Declare };
    //        var areaTree = new List<SystemArea>();
    //        var files = new List<Hotline.File.File>();
    //        _industryRepositoryMock.Setup(r => r.GetAsync(id, cancellationToken)).ReturnsAsync(industry);
    //        _systemAreaDomainServiceMock.Setup(s => s.GetAreaTree(0, "510300")).ReturnsAsync(areaTree);
    //        _fileRepositoryMock.Setup(f => f.GetByKeyAsync(id, cancellationToken)).ReturnsAsync(files);

    //        // Act
    //        var result = await _snapshotApplication.GetIndustryBaseAsync(id, cancellationToken);

    //        // Assert
    //        Assert.NotNull(result);
    //        Assert.Equal(industry.Id, result.Industry.Id);
    //        //Assert.Equal(industry.IndustryType, result.IndustryType);
    //        Assert.Equal(areaTree.Adapt<List<SystemAreaOutDto>>(), result.AreaTree);
    //        Assert.Equal(files.Adapt<List<IndustryFileDto>>(), result.Files);
    //    }
    //}
}
