From 9dcba43af181c1e80ce758ed9387f6d3ac19a85f Mon Sep 17 00:00:00 2001 From: Savorboard Date: Tue, 4 Feb 2025 17:25:54 +0800 Subject: [PATCH] Remove Redis Streams integration test project as appveyor is not working now. --- CAP.sln | 6 - .../CapRedisOptionsPostConfigureTests.cs | 52 -------- .../CapRedisOptionsTests.cs | 103 --------------- .../DotNetCore.CAP.RedisStreams.Test.csproj | 30 ----- .../RedisConnectionPoolTests.cs | 118 ------------------ .../RedisOptionsExtensionTests.cs | 59 --------- 6 files changed, 368 deletions(-) delete mode 100644 test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsPostConfigureTests.cs delete mode 100644 test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsTests.cs delete mode 100644 test/DotNetCore.CAP.RedisStreams.Test/DotNetCore.CAP.RedisStreams.Test.csproj delete mode 100644 test/DotNetCore.CAP.RedisStreams.Test/RedisConnectionPoolTests.cs delete mode 100644 test/DotNetCore.CAP.RedisStreams.Test/RedisOptionsExtensionTests.cs diff --git a/CAP.sln b/CAP.sln index 8f78f143f..8ed771fb2 100644 --- a/CAP.sln +++ b/CAP.sln @@ -91,8 +91,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample.Dashboard.Jwt", "sam EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetCore.CAP.Dashboard.K8s", "src\DotNetCore.CAP.Dashboard.K8s\DotNetCore.CAP.Dashboard.K8s.csproj", "{48655118-CEC3-4BD9-B510-64C1195C2729}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetCore.CAP.RedisStreams.Test", "test\DotNetCore.CAP.RedisStreams.Test\DotNetCore.CAP.RedisStreams.Test.csproj", "{789E851F-37B4-49D6-B405-7EC9AA1D2CF8}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -227,9 +225,6 @@ Global {48655118-CEC3-4BD9-B510-64C1195C2729}.Debug|Any CPU.Build.0 = Debug|Any CPU {48655118-CEC3-4BD9-B510-64C1195C2729}.Release|Any CPU.ActiveCfg = Release|Any CPU {48655118-CEC3-4BD9-B510-64C1195C2729}.Release|Any CPU.Build.0 = Release|Any CPU - {789E851F-37B4-49D6-B405-7EC9AA1D2CF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {789E851F-37B4-49D6-B405-7EC9AA1D2CF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {789E851F-37B4-49D6-B405-7EC9AA1D2CF8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -267,7 +262,6 @@ Global {D9681967-DAC2-43EF-999F-3727F1046711} = {C09CDAB0-6DD4-46E9-B7F3-3EF2A4741EA0} {F739A8C9-565F-4B1D-8F91-FEE056C03FBD} = {3A6B6931-A123-477A-9469-8B468B5385AF} {48655118-CEC3-4BD9-B510-64C1195C2729} = {9B2AE124-6636-4DE9-83A3-70360DABD0C4} - {789E851F-37B4-49D6-B405-7EC9AA1D2CF8} = {C09CDAB0-6DD4-46E9-B7F3-3EF2A4741EA0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {2E70565D-94CF-40B4-BFE1-AC18D5F736AB} diff --git a/test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsPostConfigureTests.cs b/test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsPostConfigureTests.cs deleted file mode 100644 index c78bd36f9..000000000 --- a/test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsPostConfigureTests.cs +++ /dev/null @@ -1,52 +0,0 @@ -using StackExchange.Redis; -using System.Net; - -namespace DotNetCore.CAP.RedisStreams.Test; - -public class CapRedisOptionsPostConfigureTests -{ - [Fact] - public void PostConfigure_Should_Set_Default_Values() - { - // Arrange - var options = new CapRedisOptions(); - var postConfigure = new CapRedisOptionsPostConfigure(); - - // Act - postConfigure.PostConfigure(null, options); - - // Assert - Assert.NotNull(options.Configuration); - Assert.Equal((uint)10, options.StreamEntriesCount); - Assert.Equal((uint)10, options.ConnectionPoolSize); - Assert.Single(options.Configuration.EndPoints); - Assert.Equal($"{IPAddress.Loopback}:6379", options.Configuration.EndPoints.First().ToString()); - } - - [Fact] - public void PostConfigure_Should_Not_Override_Existing_Values() - { - // Arrange - var options = new CapRedisOptions - { - StreamEntriesCount = 50, - ConnectionPoolSize = 100, - Configuration = new ConfigurationOptions - { - EndPoints = { "localhost:6379" } - } - }; - - var postConfigure = new CapRedisOptionsPostConfigure(); - - // Act - postConfigure.PostConfigure(null, options); - - // Assert - Assert.NotNull(options.Configuration); - Assert.Equal((uint)50, options.StreamEntriesCount); - Assert.Equal((uint)100, options.ConnectionPoolSize); - Assert.Single(options.Configuration.EndPoints); - Assert.Contains("localhost:6379", options.Configuration.ToString()); - } -} diff --git a/test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsTests.cs b/test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsTests.cs deleted file mode 100644 index 8bc144074..000000000 --- a/test/DotNetCore.CAP.RedisStreams.Test/CapRedisOptionsTests.cs +++ /dev/null @@ -1,103 +0,0 @@ -using StackExchange.Redis; - -namespace DotNetCore.CAP.RedisStreams.Test; -public class CapRedisOptionsTests -{ - [Fact] - public void Default_Endpoint_Should_Be_Empty() - { - // Arrange - var options = new CapRedisOptions(); - - // Act - var endpoint = options.Endpoint; - - // Assert - Assert.Equal(string.Empty, endpoint); - } - - [Fact] - public void Endpoint_Should_Return_Correct_Value_When_Configuration_Is_Set() - { - // Arrange - var options = new CapRedisOptions - { - Configuration = new ConfigurationOptions - { - EndPoints = { "localhost:6379" } - } - }; - - // Act - var endpoint = options.Endpoint; - - // Assert - Assert.Contains("localhost:6379", endpoint); - } - - [Fact] - public void StreamEntriesCount_Should_Be_Set_Correctly() - { - // Arrange - CapRedisOptions options = new () - { - // Act - StreamEntriesCount = 10 - }; - - // Assert - Assert.Equal((uint)10, options.StreamEntriesCount); - } - - [Fact] - public void ConnectionPoolSize_Should_Be_Set_Correctly() - { - // Arrange - var options = new CapRedisOptions - { - // Act - ConnectionPoolSize = 5 - }; - - // Assert - Assert.Equal((uint)5, options.ConnectionPoolSize); - } - - [Fact] - public void OnConsumeError_Should_Invoke_Correctly() - { - // Arrange - var options = new CapRedisOptions(); - var invoked = false; - - options.OnConsumeError = context => - { - invoked = true; - Assert.NotNull(context.Exception); - Assert.Equal("Test exception", context.Exception.Message); - Assert.Null(context.Entry); - return Task.CompletedTask; - }; - - var errorContext = new CapRedisOptions.ConsumeErrorContext(new Exception("Test exception"), null); - - // Act - options.OnConsumeError?.Invoke(errorContext); - - // Assert - Assert.True(invoked); - } - - [Fact] - public void ConsumeErrorContext_Should_Hold_Correct_Values() - { - // Arrange - var exception = new Exception("Error message"); - var streamEntry = new StreamEntry("entryId", null); - var context = new CapRedisOptions.ConsumeErrorContext(exception, streamEntry); - - // Assert - Assert.Equal(exception, context.Exception); - Assert.Equal(streamEntry, context.Entry); - } -} diff --git a/test/DotNetCore.CAP.RedisStreams.Test/DotNetCore.CAP.RedisStreams.Test.csproj b/test/DotNetCore.CAP.RedisStreams.Test/DotNetCore.CAP.RedisStreams.Test.csproj deleted file mode 100644 index 0b6c8c248..000000000 --- a/test/DotNetCore.CAP.RedisStreams.Test/DotNetCore.CAP.RedisStreams.Test.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - net8.0 - enable - enable - false - true - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/DotNetCore.CAP.RedisStreams.Test/RedisConnectionPoolTests.cs b/test/DotNetCore.CAP.RedisStreams.Test/RedisConnectionPoolTests.cs deleted file mode 100644 index d40b848e9..000000000 --- a/test/DotNetCore.CAP.RedisStreams.Test/RedisConnectionPoolTests.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System.Collections.Concurrent; -using System.Reflection; -using System.Runtime.CompilerServices; -using DotNet.Testcontainers.Builders; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Moq; -using StackExchange.Redis; -using Testcontainers.Redis; - -namespace DotNetCore.CAP.RedisStreams.Test; - -public class RedisConnectionPoolTests : IAsyncLifetime -{ - private readonly Mock> _optionsMock; - private readonly Mock _loggerFactoryMock; - private readonly Mock> _loggerMock; - private readonly CapRedisOptions _redisOptions; - private RedisContainer? _redisContainer; - - public RedisConnectionPoolTests() - { - _redisOptions = new CapRedisOptions - { - ConnectionPoolSize = 5, - Configuration = ConfigurationOptions.Parse("localhost:6379") - }; - - _optionsMock = new Mock>(); - _optionsMock.Setup(o => o.Value).Returns(_redisOptions); - - // Mock ILoggerFactory and ILogger for AsyncLazyRedisConnection - _loggerMock = new Mock>(); - _loggerFactoryMock = new Mock(); - _loggerFactoryMock - .Setup(factory => factory.CreateLogger(It.IsAny())) - .Returns(_loggerMock.Object); - } - - [Fact] - public void Init_Should_Create_Correct_Number_Of_Connections() - { - // Arrange - var pool = new RedisConnectionPool(_optionsMock.Object, _loggerFactoryMock.Object); - - // Act - var connectionsField = typeof(RedisConnectionPool) - .GetField("_connections", BindingFlags.NonPublic | BindingFlags.Instance); - - var connections = (ConcurrentBag)connectionsField!.GetValue(pool)!; - - // Assert - Assert.NotNull(connections); - Assert.Equal(_redisOptions.ConnectionPoolSize, (uint)connections.Count); - } - - [Fact] - public async Task ConnectAsync_Should_Return_Available_Connection() - { - // Arrange - var pool = new RedisConnectionPool(_optionsMock.Object, _loggerFactoryMock.Object); - - // Act - var connection = await pool.ConnectAsync(); - - // Assert - Assert.NotNull(connection); - Assert.IsAssignableFrom(connection); - } - - [Fact] - public void Dispose_Should_Cleanup_Connections() - { - // Arrange - var pool = new RedisConnectionPool(_optionsMock.Object, _loggerFactoryMock.Object); - - // Act - pool.Dispose(); - - var isDisposedField = typeof(RedisConnectionPool) - .GetField("_isDisposed", BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); - - var isDisposed = (bool)isDisposedField!.GetValue(pool)!; - - // Assert - Assert.True(isDisposed); - } - - [Fact] - public void Dispose_Should_Not_Throw_If_Already_Disposed() - { - // Arrange - var pool = new RedisConnectionPool(_optionsMock.Object, _loggerFactoryMock.Object); - - // Act & Assert - pool.Dispose(); - var exception = Record.Exception(() => pool.Dispose()); - Assert.Null(exception); - } - - public Task InitializeAsync() - { - // Create a Redis container using TestContainers - _redisContainer = new RedisBuilder() - .WithImage("redis:7.0") - .WithPortBinding(6379, 6379) - .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(6379)) - .Build(); - - return _redisContainer.StartAsync(); - } - - public Task DisposeAsync() - { - var task = _redisContainer?.StopAsync(); - return task ?? Task.CompletedTask; - } -} diff --git a/test/DotNetCore.CAP.RedisStreams.Test/RedisOptionsExtensionTests.cs b/test/DotNetCore.CAP.RedisStreams.Test/RedisOptionsExtensionTests.cs deleted file mode 100644 index f0e3140bd..000000000 --- a/test/DotNetCore.CAP.RedisStreams.Test/RedisOptionsExtensionTests.cs +++ /dev/null @@ -1,59 +0,0 @@ -using DotNetCore.CAP.Transport; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; - -namespace DotNetCore.CAP.RedisStreams.Test; - -public class RedisOptionsExtensionTests -{ - [Fact] - public void AddServices_Should_Register_All_Services() - { - // Arrange - var services = new ServiceCollection(); - var configureOptions = new Action(options => { }); - - var extension = new RedisOptionsExtension(configureOptions); - - // Act - extension.AddServices(services); - services.AddLogging(); - - // Assert - var serviceProvider = services.BuildServiceProvider(); - - Assert.NotNull(serviceProvider.GetService()); - Assert.NotNull(serviceProvider.GetService()); - Assert.NotNull(serviceProvider.GetService()); - Assert.NotNull(serviceProvider.GetService()); - Assert.NotNull(serviceProvider.GetService()); - - // Verify the post-configuration for CapRedisOptions - var postConfig = serviceProvider.GetServices>(); - Assert.Single(postConfig); - } - - [Fact] - public void AddServices_Should_Configure_CapRedisOptions() - { - // Arrange - var services = new ServiceCollection(); - var configureOptions = new Action(options => - { - options.StreamEntriesCount = 20; - options.ConnectionPoolSize = 30; - }); - - var extension = new RedisOptionsExtension(configureOptions); - - // Act - extension.AddServices(services); - var serviceProvider = services.BuildServiceProvider(); - var options = serviceProvider.GetService>()?.Value; - - // Assert - Assert.NotNull(options); - Assert.Equal((uint)20, options!.StreamEntriesCount); - Assert.Equal((uint)30, options.ConnectionPoolSize); - } -}