Files
Cleanuparr/code/backend/Cleanuparr.Infrastructure.Tests/Http/DynamicHttpClientProviderTests.cs
2025-06-18 21:58:48 +03:00

134 lines
4.4 KiB
C#

// using System.Net;
// using Common.Enums;
// using Infrastructure.Http;
// using Shouldly;
//
// namespace Infrastructure.Tests.Http;
//
// public class DynamicHttpClientProviderTests : IClassFixture<DynamicHttpClientProviderFixture>
// {
// private readonly DynamicHttpClientProviderFixture _fixture;
//
// public DynamicHttpClientProviderTests(DynamicHttpClientProviderFixture fixture)
// {
// _fixture = fixture;
// }
//
// [Fact]
// public void CreateClient_WithQBitConfig_ShouldReturnConfiguredClient()
// {
// // Arrange
// var sut = _fixture.CreateSut();
// var config = _fixture.CreateQBitClientConfig();
//
// // Act
// var httpClient = sut.CreateClient(config);
//
// // Assert
// httpClient.ShouldNotBeNull();
// httpClient.BaseAddress.ShouldBe(config.Url);
// VerifyDefaultHttpClientProperties(httpClient);
// }
//
// [Fact]
// public void CreateClient_WithTransmissionConfig_ShouldReturnConfiguredClient()
// {
// // Arrange
// var sut = _fixture.CreateSut();
// var config = _fixture.CreateTransmissionClientConfig();
//
// // Act
// var httpClient = sut.CreateClient(config);
//
// // Assert
// httpClient.ShouldNotBeNull();
// httpClient.BaseAddress.ShouldBe(config.Url);
// VerifyDefaultHttpClientProperties(httpClient);
// }
//
// [Fact]
// public void CreateClient_WithDelugeConfig_ShouldReturnConfiguredClient()
// {
// // Arrange
// var sut = _fixture.CreateSut();
// var config = _fixture.CreateDelugeClientConfig();
//
// // Act
// var httpClient = sut.CreateClient(config);
//
// // Assert
// httpClient.ShouldNotBeNull();
// httpClient.BaseAddress.ShouldBe(config.Url);
//
// // Deluge client should have additional properties configured
// VerifyDelugeHttpClientProperties(httpClient);
// }
//
// [Fact]
// public void CreateClient_WithSameConfig_ShouldReturnUniqueInstances()
// {
// // Arrange
// var sut = _fixture.CreateSut();
// var config = _fixture.CreateQBitClientConfig();
//
// // Act
// var firstClient = sut.CreateClient(config);
// var secondClient = sut.CreateClient(config);
//
// // Assert
// firstClient.ShouldNotBeNull();
// secondClient.ShouldNotBeNull();
// firstClient.ShouldNotBeSameAs(secondClient); // Should be different instances
// }
//
// [Fact]
// public void CreateClient_WithCustomCertificateValidation_ShouldConfigureHandler()
// {
// // Arrange
// var sut = _fixture.CreateSut();
// var config = _fixture.CreateQBitClientConfig();
//
// // Act
// var httpClient = sut.CreateClient(config);
//
// // Assert
// httpClient.ShouldNotBeNull();
//
// // Since we can't directly access the handler settings after creation,
// // we verify the behavior is working by checking if the client can be created properly
// httpClient.BaseAddress.ShouldBe(config.Url);
// }
//
// [Fact]
// public void CreateClient_WithTimeout_ShouldConfigureTimeout()
// {
// // Arrange
// var sut = _fixture.CreateSut();
// var config = _fixture.CreateQBitClientConfig();
// TimeSpan expectedTimeout = TimeSpan.FromSeconds(30);
//
// // Act
// var httpClient = sut.CreateClient(config);
//
// // Assert
// httpClient.Timeout.ShouldBe(expectedTimeout);
// }
//
// private void VerifyDefaultHttpClientProperties(HttpClient httpClient)
// {
// // Check common properties that should be set for all clients
// httpClient.Timeout.ShouldBe(TimeSpan.FromSeconds(30));
// httpClient.DefaultRequestHeaders.ShouldNotBeNull();
// }
//
// private void VerifyDelugeHttpClientProperties(HttpClient httpClient)
// {
// // Verify Deluge-specific HTTP client configurations
// VerifyDefaultHttpClientProperties(httpClient);
//
// // Using reflection to access the handler is tricky and potentially brittle
// // Instead, we focus on verifying the client itself is properly configured
// httpClient.BaseAddress.ShouldNotBeNull();
// }
// }