From 9972b74bc35024b97589b255551e8697fbfd5fd3 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 12 Mar 2026 15:10:50 -0400 Subject: [PATCH] refactor: extract NATS.Server.Gateways.Tests project Move 25 gateway-related test files from NATS.Server.Tests into a dedicated NATS.Server.Gateways.Tests project. Update namespaces, replace private ReadUntilAsync with SocketTestHelper from TestUtilities, inline TestServerFactory usage, add InternalsVisibleTo, and register the project in the solution file. All 261 tests pass. --- NatsDotNet.slnx | 1 + src/NATS.Server/NATS.Server.csproj | 1 + .../GatewayAdvancedRemapRuntimeTests.cs | 2 +- .../GatewayAdvancedSemanticsTests.cs | 2 +- .../GatewayLeafBootstrapTests.cs | 45 +++++++++++++++++++ .../GatewayProtocolTests.cs | 27 +++-------- .../Gateways/AccountGatewayRoutesTests.cs | 2 +- .../GatewayAccountScopedDeliveryTests.cs | 2 +- .../Gateways/GatewayBasicTests.cs | 2 +- .../Gateways/GatewayCommandTests.cs | 2 +- .../Gateways/GatewayConfigTests.cs | 2 +- ...wayConnectionDirectionParityBatch2Tests.cs | 2 +- .../Gateways/GatewayConnectionTests.cs | 2 +- .../Gateways/GatewayForwardingTests.cs | 2 +- .../Gateways/GatewayGoParityTests.cs | 2 +- .../GatewayInterestIdempotencyTests.cs | 2 +- .../Gateways/GatewayInterestModeTests.cs | 2 +- .../GatewayInterestOnlyParityTests.cs | 2 +- .../Gateways/GatewayInterestTrackerTests.cs | 2 +- .../Gateways/GatewayReconnectionTests.cs | 2 +- .../Gateways/GatewayRegistrationTests.cs | 2 +- .../GatewayRemoteConfigParityBatch3Tests.cs | 2 +- .../GatewayReplyAndConfigParityBatch1Tests.cs | 2 +- .../GatewayServerAccessorParityBatch4Tests.cs | 2 +- .../Gateways/QueueGroupPropagationTests.cs | 2 +- .../Gateways/ReplyMapCacheTests.cs | 2 +- .../Gateways/ReplyMapperFullTests.cs | 2 +- .../NATS.Server.Gateways.Tests.csproj | 25 +++++++++++ .../GatewayLeafBootstrapTests.cs | 14 ------ 29 files changed, 101 insertions(+), 58 deletions(-) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/GatewayAdvancedRemapRuntimeTests.cs (93%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/GatewayAdvancedSemanticsTests.cs (93%) create mode 100644 tests/NATS.Server.Gateways.Tests/GatewayLeafBootstrapTests.cs rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/GatewayProtocolTests.cs (85%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/AccountGatewayRoutesTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayAccountScopedDeliveryTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayBasicTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayCommandTests.cs (98%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayConfigTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs (98%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayConnectionTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayForwardingTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayGoParityTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayInterestIdempotencyTests.cs (98%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayInterestModeTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayInterestOnlyParityTests.cs (93%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayInterestTrackerTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayReconnectionTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayRegistrationTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayRemoteConfigParityBatch3Tests.cs (97%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs (98%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/GatewayServerAccessorParityBatch4Tests.cs (95%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/QueueGroupPropagationTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/ReplyMapCacheTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Gateways.Tests}/Gateways/ReplyMapperFullTests.cs (99%) create mode 100644 tests/NATS.Server.Gateways.Tests/NATS.Server.Gateways.Tests.csproj delete mode 100644 tests/NATS.Server.Tests/GatewayLeafBootstrapTests.cs diff --git a/NatsDotNet.slnx b/NatsDotNet.slnx index 657789f..23becec 100644 --- a/NatsDotNet.slnx +++ b/NatsDotNet.slnx @@ -8,6 +8,7 @@ + diff --git a/src/NATS.Server/NATS.Server.csproj b/src/NATS.Server/NATS.Server.csproj index 91b5087..e0b9a71 100644 --- a/src/NATS.Server/NATS.Server.csproj +++ b/src/NATS.Server/NATS.Server.csproj @@ -3,6 +3,7 @@ + diff --git a/tests/NATS.Server.Tests/GatewayAdvancedRemapRuntimeTests.cs b/tests/NATS.Server.Gateways.Tests/GatewayAdvancedRemapRuntimeTests.cs similarity index 93% rename from tests/NATS.Server.Tests/GatewayAdvancedRemapRuntimeTests.cs rename to tests/NATS.Server.Gateways.Tests/GatewayAdvancedRemapRuntimeTests.cs index 36ce481..3d2b066 100644 --- a/tests/NATS.Server.Tests/GatewayAdvancedRemapRuntimeTests.cs +++ b/tests/NATS.Server.Gateways.Tests/GatewayAdvancedRemapRuntimeTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Gateways; -namespace NATS.Server.Tests; +namespace NATS.Server.Gateways.Tests; public class GatewayAdvancedRemapRuntimeTests { diff --git a/tests/NATS.Server.Tests/GatewayAdvancedSemanticsTests.cs b/tests/NATS.Server.Gateways.Tests/GatewayAdvancedSemanticsTests.cs similarity index 93% rename from tests/NATS.Server.Tests/GatewayAdvancedSemanticsTests.cs rename to tests/NATS.Server.Gateways.Tests/GatewayAdvancedSemanticsTests.cs index a9bd53d..a5ab7c0 100644 --- a/tests/NATS.Server.Tests/GatewayAdvancedSemanticsTests.cs +++ b/tests/NATS.Server.Gateways.Tests/GatewayAdvancedSemanticsTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Gateways; -namespace NATS.Server.Tests; +namespace NATS.Server.Gateways.Tests; public class GatewayAdvancedSemanticsTests { diff --git a/tests/NATS.Server.Gateways.Tests/GatewayLeafBootstrapTests.cs b/tests/NATS.Server.Gateways.Tests/GatewayLeafBootstrapTests.cs new file mode 100644 index 0000000..9811ff9 --- /dev/null +++ b/tests/NATS.Server.Gateways.Tests/GatewayLeafBootstrapTests.cs @@ -0,0 +1,45 @@ +using Microsoft.Extensions.Logging.Abstractions; +using NATS.Server.Configuration; + +namespace NATS.Server.Gateways.Tests; + +public class GatewayLeafBootstrapTests +{ + [Fact] + public async Task Server_bootstraps_gateway_and_leaf_managers_when_configured() + { + var options = new NatsOptions + { + Host = "127.0.0.1", + Port = 0, + Gateway = new GatewayOptions + { + Name = "G1", + Host = "127.0.0.1", + Port = 0, + }, + LeafNode = new LeafNodeOptions + { + Host = "127.0.0.1", + Port = 0, + }, + }; + + var server = new NatsServer(options, NullLoggerFactory.Instance); + var cts = new CancellationTokenSource(); + _ = server.StartAsync(cts.Token); + await server.WaitForReadyAsync(); + + try + { + server.Stats.Gateways.ShouldBeGreaterThanOrEqualTo(0); + server.Stats.Leafs.ShouldBeGreaterThanOrEqualTo(0); + } + finally + { + await cts.CancelAsync(); + server.Dispose(); + cts.Dispose(); + } + } +} diff --git a/tests/NATS.Server.Tests/GatewayProtocolTests.cs b/tests/NATS.Server.Gateways.Tests/GatewayProtocolTests.cs similarity index 85% rename from tests/NATS.Server.Tests/GatewayProtocolTests.cs rename to tests/NATS.Server.Gateways.Tests/GatewayProtocolTests.cs index c01efd7..901f128 100644 --- a/tests/NATS.Server.Tests/GatewayProtocolTests.cs +++ b/tests/NATS.Server.Gateways.Tests/GatewayProtocolTests.cs @@ -3,8 +3,9 @@ using System.Net.Sockets; using System.Text; using Microsoft.Extensions.Logging.Abstractions; using NATS.Server.Configuration; +using NATS.Server.TestUtilities; -namespace NATS.Server.Tests; +namespace NATS.Server.Gateways.Tests; public class GatewayProtocolTests { @@ -87,7 +88,7 @@ internal sealed class GatewayFixture : IAsyncDisposable _ = await ReadLineAsync(sock); // INFO await sock.SendAsync(Encoding.ASCII.GetBytes($"CONNECT {{}}\r\nSUB {subject} 1\r\nPING\r\n")); - await ReadUntilAsync(sock, "PONG"); + await SocketTestHelper.ReadUntilAsync(sock, "PONG"); } public async Task PublishLocalClusterAsync(string subject, string payload) @@ -100,11 +101,11 @@ internal sealed class GatewayFixture : IAsyncDisposable _localPublisher = sock; _ = await ReadLineAsync(sock); // INFO await sock.SendAsync(Encoding.ASCII.GetBytes("CONNECT {}\r\nPING\r\n")); - await ReadUntilAsync(sock, "PONG"); + await SocketTestHelper.ReadUntilAsync(sock, "PONG"); } await sock.SendAsync(Encoding.ASCII.GetBytes($"PUB {subject} {payload.Length}\r\n{payload}\r\nPING\r\n")); - await ReadUntilAsync(sock, "PONG"); + await SocketTestHelper.ReadUntilAsync(sock, "PONG"); } public Task ReadRemoteClusterMessageAsync() @@ -112,7 +113,7 @@ internal sealed class GatewayFixture : IAsyncDisposable if (_remoteSubscriber == null) throw new InvalidOperationException("Remote subscriber was not initialized."); - return ReadUntilAsync(_remoteSubscriber, "MSG "); + return SocketTestHelper.ReadUntilAsync(_remoteSubscriber, "MSG "); } public async ValueTask DisposeAsync() @@ -134,20 +135,4 @@ internal sealed class GatewayFixture : IAsyncDisposable return Encoding.ASCII.GetString(buf, 0, n); } - private static async Task ReadUntilAsync(Socket sock, string expected) - { - var sb = new StringBuilder(); - var buf = new byte[4096]; - using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5)); - - while (!sb.ToString().Contains(expected, StringComparison.Ordinal)) - { - var n = await sock.ReceiveAsync(buf, SocketFlags.None, cts.Token); - if (n == 0) - break; - sb.Append(Encoding.ASCII.GetString(buf, 0, n)); - } - - return sb.ToString(); - } } diff --git a/tests/NATS.Server.Tests/Gateways/AccountGatewayRoutesTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/AccountGatewayRoutesTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/AccountGatewayRoutesTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/AccountGatewayRoutesTests.cs index 898a84a..934f168 100644 --- a/tests/NATS.Server.Tests/Gateways/AccountGatewayRoutesTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/AccountGatewayRoutesTests.cs @@ -5,7 +5,7 @@ using System.Net.Sockets; using NATS.Server.Gateways; using Shouldly; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Unit tests for account-specific subscription tracking on GatewayConnection. diff --git a/tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs index 2e13e52..d0b8d4b 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayAccountScopedDeliveryTests.cs @@ -3,7 +3,7 @@ using NATS.Client.Core; using NATS.Server.Auth; using NATS.Server.Configuration; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; public class GatewayAccountScopedDeliveryTests { diff --git a/tests/NATS.Server.Tests/Gateways/GatewayBasicTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayBasicTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayBasicTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayBasicTests.cs index df9806f..c1cb027 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayBasicTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayBasicTests.cs @@ -2,7 +2,7 @@ using Microsoft.Extensions.Logging.Abstractions; using NATS.Client.Core; using NATS.Server.Configuration; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Ports TestGatewayBasic and TestGatewayDoesntSendBackToItself from diff --git a/tests/NATS.Server.Tests/Gateways/GatewayCommandTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayCommandTests.cs similarity index 98% rename from tests/NATS.Server.Tests/Gateways/GatewayCommandTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayCommandTests.cs index 1a03e73..f92e3e0 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayCommandTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayCommandTests.cs @@ -2,7 +2,7 @@ using System.Text; using NATS.Server.Gateways; using Shouldly; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; // Go reference: gateway.go:90-120 — gateway protocol constants and command formatting. diff --git a/tests/NATS.Server.Tests/Gateways/GatewayConfigTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayConfigTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayConfigTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayConfigTests.cs index 2722628..25395f6 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayConfigTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayConfigTests.cs @@ -3,7 +3,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using NATS.Server.Monitoring; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Gateway configuration validation, options parsing, monitoring endpoint, diff --git a/tests/NATS.Server.Tests/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs similarity index 98% rename from tests/NATS.Server.Tests/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs index ddc3104..4205868 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayConnectionDirectionParityBatch2Tests.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Logging.Abstractions; using NATS.Server.Configuration; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; public class GatewayConnectionDirectionParityBatch2Tests { diff --git a/tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayConnectionTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayConnectionTests.cs index 528b202..d054a90 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayConnectionTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayConnectionTests.cs @@ -7,7 +7,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using NATS.Server.Subscriptions; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Gateway connection establishment, handshake, lifecycle, and reconnection tests. diff --git a/tests/NATS.Server.Tests/Gateways/GatewayForwardingTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayForwardingTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayForwardingTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayForwardingTests.cs index 3cac958..a37d10f 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayForwardingTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayForwardingTests.cs @@ -8,7 +8,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using NATS.Server.Subscriptions; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Gateway message forwarding, reply mapping, queue subscription delivery, diff --git a/tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayGoParityTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayGoParityTests.cs index f4ead8b..3b805bb 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayGoParityTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayGoParityTests.cs @@ -7,7 +7,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using NATS.Server.Subscriptions; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Go-parity tests for gateway functionality, ported from diff --git a/tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestIdempotencyTests.cs similarity index 98% rename from tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestIdempotencyTests.cs index dbe9150..c271d5c 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayInterestIdempotencyTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestIdempotencyTests.cs @@ -4,7 +4,7 @@ using System.Text; using NATS.Server.Gateways; using NATS.Server.Subscriptions; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; public class GatewayInterestIdempotencyTests { diff --git a/tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestModeTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestModeTests.cs index 9c4a42b..a5ae49d 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayInterestModeTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestModeTests.cs @@ -8,7 +8,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using NATS.Server.Subscriptions; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Gateway interest-only mode, account interest, subject interest propagation, diff --git a/tests/NATS.Server.Tests/Gateways/GatewayInterestOnlyParityTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestOnlyParityTests.cs similarity index 93% rename from tests/NATS.Server.Tests/Gateways/GatewayInterestOnlyParityTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestOnlyParityTests.cs index 676ecf7..ad01094 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayInterestOnlyParityTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestOnlyParityTests.cs @@ -1,7 +1,7 @@ using NATS.Server.Gateways; using NATS.Server.Subscriptions; -namespace NATS.Server.Tests; +namespace NATS.Server.Gateways.Tests; public class GatewayInterestOnlyParityTests { diff --git a/tests/NATS.Server.Tests/Gateways/GatewayInterestTrackerTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestTrackerTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayInterestTrackerTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestTrackerTests.cs index 06d8af6..b25d364 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayInterestTrackerTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayInterestTrackerTests.cs @@ -1,7 +1,7 @@ // Go: gateway.go:100-150 (InterestMode enum), gateway.go:1500-1600 (switchToInterestOnlyMode) using NATS.Server.Gateways; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Unit tests for GatewayInterestTracker — the per-connection interest mode state machine. diff --git a/tests/NATS.Server.Tests/Gateways/GatewayReconnectionTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayReconnectionTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayReconnectionTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayReconnectionTests.cs index d779496..09eed42 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayReconnectionTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayReconnectionTests.cs @@ -3,7 +3,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using Shouldly; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Tests for GatewayReconnectPolicy and GatewayManager reconnection tracking. diff --git a/tests/NATS.Server.Tests/Gateways/GatewayRegistrationTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayRegistrationTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/GatewayRegistrationTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayRegistrationTests.cs index f7bc065..28148e9 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayRegistrationTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayRegistrationTests.cs @@ -3,7 +3,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; using Shouldly; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Tests for gateway connection registration and state tracking (Gap 11.7). diff --git a/tests/NATS.Server.Tests/Gateways/GatewayRemoteConfigParityBatch3Tests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayRemoteConfigParityBatch3Tests.cs similarity index 97% rename from tests/NATS.Server.Tests/Gateways/GatewayRemoteConfigParityBatch3Tests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayRemoteConfigParityBatch3Tests.cs index 1f77535..12228cb 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayRemoteConfigParityBatch3Tests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayRemoteConfigParityBatch3Tests.cs @@ -1,6 +1,6 @@ using NATS.Server.Configuration; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; public class GatewayRemoteConfigParityBatch3Tests { diff --git a/tests/NATS.Server.Tests/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs similarity index 98% rename from tests/NATS.Server.Tests/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs index 9a0cd77..bee8462 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayReplyAndConfigParityBatch1Tests.cs @@ -1,7 +1,7 @@ using NATS.Server.Configuration; using NATS.Server.Gateways; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; public class GatewayReplyAndConfigParityBatch1Tests { diff --git a/tests/NATS.Server.Tests/Gateways/GatewayServerAccessorParityBatch4Tests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayServerAccessorParityBatch4Tests.cs similarity index 95% rename from tests/NATS.Server.Tests/Gateways/GatewayServerAccessorParityBatch4Tests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/GatewayServerAccessorParityBatch4Tests.cs index a658bd7..3b37f05 100644 --- a/tests/NATS.Server.Tests/Gateways/GatewayServerAccessorParityBatch4Tests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/GatewayServerAccessorParityBatch4Tests.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Logging.Abstractions; using NATS.Server.Configuration; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; public class GatewayServerAccessorParityBatch4Tests { diff --git a/tests/NATS.Server.Tests/Gateways/QueueGroupPropagationTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/QueueGroupPropagationTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/QueueGroupPropagationTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/QueueGroupPropagationTests.cs index dc532a0..f4226c2 100644 --- a/tests/NATS.Server.Tests/Gateways/QueueGroupPropagationTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/QueueGroupPropagationTests.cs @@ -3,7 +3,7 @@ using System.Net.Sockets; using NATS.Server.Gateways; using Shouldly; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Tests for queue group subscription tracking on GatewayConnection. diff --git a/tests/NATS.Server.Tests/Gateways/ReplyMapCacheTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/ReplyMapCacheTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/ReplyMapCacheTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/ReplyMapCacheTests.cs index 3c7ef33..ae6ddf9 100644 --- a/tests/NATS.Server.Tests/Gateways/ReplyMapCacheTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/ReplyMapCacheTests.cs @@ -1,7 +1,7 @@ using NATS.Server.Gateways; using Shouldly; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Tests for the ReplyMapCache LRU cache with TTL expiration. diff --git a/tests/NATS.Server.Tests/Gateways/ReplyMapperFullTests.cs b/tests/NATS.Server.Gateways.Tests/Gateways/ReplyMapperFullTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Gateways/ReplyMapperFullTests.cs rename to tests/NATS.Server.Gateways.Tests/Gateways/ReplyMapperFullTests.cs index e257793..f9e1067 100644 --- a/tests/NATS.Server.Tests/Gateways/ReplyMapperFullTests.cs +++ b/tests/NATS.Server.Gateways.Tests/Gateways/ReplyMapperFullTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Gateways; -namespace NATS.Server.Tests.Gateways; +namespace NATS.Server.Gateways.Tests.Gateways; /// /// Tests for the expanded ReplyMapper with hash support. diff --git a/tests/NATS.Server.Gateways.Tests/NATS.Server.Gateways.Tests.csproj b/tests/NATS.Server.Gateways.Tests/NATS.Server.Gateways.Tests.csproj new file mode 100644 index 0000000..81a4151 --- /dev/null +++ b/tests/NATS.Server.Gateways.Tests/NATS.Server.Gateways.Tests.csproj @@ -0,0 +1,25 @@ + + + false + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/NATS.Server.Tests/GatewayLeafBootstrapTests.cs b/tests/NATS.Server.Tests/GatewayLeafBootstrapTests.cs deleted file mode 100644 index 3a7e606..0000000 --- a/tests/NATS.Server.Tests/GatewayLeafBootstrapTests.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace NATS.Server.Tests; - -public class GatewayLeafBootstrapTests -{ - [Fact] - public async Task Server_bootstraps_gateway_and_leaf_managers_when_configured() - { - await using var server = await TestServerFactory.CreateWithGatewayAndLeafAsync(); - await server.WaitForReadyAsync(); - - server.Stats.Gateways.ShouldBeGreaterThanOrEqualTo(0); - server.Stats.Leafs.ShouldBeGreaterThanOrEqualTo(0); - } -}