try switch to db

This commit is contained in:
Flaminel
2025-06-15 00:42:20 +03:00
parent 033b50519b
commit 9e393eebcc
63 changed files with 3245 additions and 2703 deletions

View File

@@ -1,133 +1,133 @@
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();
}
}
// 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();
// }
// }