using Common.Configuration.DownloadClient; using Common.Enums; using Infrastructure.Configuration; using Infrastructure.Http; using Infrastructure.Services; using Microsoft.Extensions.Logging; using NSubstitute; namespace Infrastructure.Tests.Http; public class DynamicHttpClientProviderFixture : IDisposable { public ILogger Logger { get; } public DynamicHttpClientProviderFixture() { Logger = Substitute.For>(); } public DynamicHttpClientProvider CreateSut() { var httpClientFactory = Substitute.For(); var configManager = Substitute.For(); var certificateValidationService = Substitute.For(); return new DynamicHttpClientProvider( Logger, httpClientFactory, configManager, certificateValidationService); } public ClientConfig CreateQBitClientConfig() { return new ClientConfig { Id = Guid.NewGuid(), Name = "QBit Test", Type = DownloadClientType.QBittorrent, Enabled = true, Host = "http://localhost:8080", Username = "admin", Password = "adminadmin" }; } public ClientConfig CreateTransmissionClientConfig() { return new ClientConfig { Id = Guid.NewGuid(), Name = "Transmission Test", Type = DownloadClientType.Transmission, Enabled = true, Host = "http://localhost:9091", Username = "admin", Password = "adminadmin", UrlBase = "transmission" }; } public ClientConfig CreateDelugeClientConfig() { return new ClientConfig { Id = Guid.NewGuid(), Name = "Deluge Test", Type = DownloadClientType.Deluge, Enabled = true, Host = "http://localhost:8112", Username = "admin", Password = "deluge" }; } public void Dispose() { // Cleanup if needed } }