diff --git a/tests/NATS.Client.CheckNativeAot/Program.cs b/tests/NATS.Client.CheckNativeAot/Program.cs index eba2753d1..79b36a70f 100644 --- a/tests/NATS.Client.CheckNativeAot/Program.cs +++ b/tests/NATS.Client.CheckNativeAot/Program.cs @@ -30,8 +30,8 @@ async Task RequestReplyTests() { Log("Request reply tests..."); - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var sub = await nats.SubscribeCoreAsync("foo"); var reg = sub.Register(async msg => @@ -65,8 +65,8 @@ async Task JetStreamTests() { Log("JetStream tests..."); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); // Happy user { @@ -189,8 +189,8 @@ async Task KVTests() { Log("KV tests..."); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -212,8 +212,8 @@ async Task ObjectStoreTests() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); @@ -269,8 +269,8 @@ async Task ServicesTests() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); @@ -382,8 +382,8 @@ async Task ServicesTests2() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10_0000)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); diff --git a/tests/NATS.Client.Core.MemoryTests/NatsConsumeTests.cs b/tests/NATS.Client.Core.MemoryTests/NatsConsumeTests.cs index a4c17b5f2..8b409da4d 100644 --- a/tests/NATS.Client.Core.MemoryTests/NatsConsumeTests.cs +++ b/tests/NATS.Client.Core.MemoryTests/NatsConsumeTests.cs @@ -9,12 +9,12 @@ namespace NATS.Client.Core.MemoryTests; public class NatsConsumeTests { [Test] - public void Subscription_should_not_be_collected_when_in_consume_async_enumerator() + public async Task Subscription_should_not_be_collected_when_in_consume_async_enumerator() { - var server = NatsServer.StartJS(); + var server = await NatsServer.StartJSAsync(); try { - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var js = new NatsJSContext(nats); nats.PingAsync().AsTask().GetAwaiter().GetResult(); @@ -101,12 +101,12 @@ public void Subscription_should_not_be_collected_when_in_consume_async_enumerato } [Test] - public void Subscription_should_not_be_collected_when_in_ordered_consume_async_enumerator() + public async Task Subscription_should_not_be_collected_when_in_ordered_consume_async_enumerator() { - var server = NatsServer.StartJS(); + var server = await NatsServer.StartJSAsync(); try { - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var js = new NatsJSContext(nats); nats.PingAsync().AsTask().GetAwaiter().GetResult(); diff --git a/tests/NATS.Client.Core.MemoryTests/NatsSubTests.cs b/tests/NATS.Client.Core.MemoryTests/NatsSubTests.cs index d8708b4be..2fbeeac88 100644 --- a/tests/NATS.Client.Core.MemoryTests/NatsSubTests.cs +++ b/tests/NATS.Client.Core.MemoryTests/NatsSubTests.cs @@ -7,12 +7,12 @@ namespace NATS.Client.Core.MemoryTests; public class NatsSubTests { [Test] - public void Subject_manager_should_not_hold_on_to_subscription_if_collected() + public async Task Subject_manager_should_not_hold_on_to_subscription_if_collected() { - var server = NatsServer.Start(); + var server = await NatsServer.StartAsync(); try { - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); async Task Isolator() { @@ -43,14 +43,14 @@ async Task Isolator() } [Test] - public void Subscription_should_not_be_collected_subscribe_async() + public async Task Subscription_should_not_be_collected_subscribe_async() { - var server = NatsServer.Start(); + var server = await NatsServer.StartAsync(); try { const int iterations = 10; const string subject = "foo.data"; - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var received = Channel.CreateUnbounded(); var subTask = Task.Run(async () => @@ -75,14 +75,14 @@ public void Subscription_should_not_be_collected_subscribe_async() } [Test] - public void Subscription_should_not_be_collected_subscribe_core_async_read_all_async() + public async Task Subscription_should_not_be_collected_subscribe_core_async_read_all_async() { - var server = NatsServer.Start(); + var server = await NatsServer.StartAsync(); try { const int iterations = 10; const string subject = "foo.data"; - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var received = Channel.CreateUnbounded(); var subTask = Task.Run(async () => @@ -108,14 +108,14 @@ public void Subscription_should_not_be_collected_subscribe_core_async_read_all_a } [Test] - public void Subscription_should_not_be_collected_subscribe_core_async_read_async() + public async Task Subscription_should_not_be_collected_subscribe_core_async_read_async() { - var server = NatsServer.Start(); + var server = await NatsServer.StartAsync(); try { const int iterations = 10; const string subject = "foo.data"; - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var received = Channel.CreateUnbounded(); var subTask = Task.Run(async () => @@ -140,14 +140,14 @@ public void Subscription_should_not_be_collected_subscribe_core_async_read_async } [Test] - public void Subscription_should_not_be_collected_subscribe_core_async_wait_to_read_async() + public async Task Subscription_should_not_be_collected_subscribe_core_async_wait_to_read_async() { - var server = NatsServer.Start(); + var server = await NatsServer.StartAsync(); try { const int iterations = 10; const string subject = "foo.data"; - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var received = Channel.CreateUnbounded(); var subTask = Task.Run(async () => diff --git a/tests/NATS.Client.Core.Tests/AuthErrorTest.cs b/tests/NATS.Client.Core.Tests/AuthErrorTest.cs index bc2e38030..c225d4346 100644 --- a/tests/NATS.Client.Core.Tests/AuthErrorTest.cs +++ b/tests/NATS.Client.Core.Tests/AuthErrorTest.cs @@ -12,7 +12,7 @@ public class AuthErrorTest [SkipOnPlatform("WINDOWS", "doesn't support HUP signal")] public async Task Auth_err_twice_will_stop_retries() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .AddServerConfigText(@" @@ -32,7 +32,7 @@ public async Task Auth_err_twice_will_stop_retries() }, }); - await using var nats = server.CreateClientConnection(new NatsOpts + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { AuthOpts = new NatsAuthOpts { @@ -79,7 +79,7 @@ public async Task Auth_err_twice_will_stop_retries() [SkipOnPlatform("WINDOWS", "doesn't support HUP signal")] public async Task Auth_err_can_be_ignored_for_retires() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .AddServerConfigText(@" @@ -99,7 +99,7 @@ public async Task Auth_err_can_be_ignored_for_retires() }, }); - await using var nats = server.CreateClientConnection(new NatsOpts + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { AuthOpts = new NatsAuthOpts { diff --git a/tests/NATS.Client.Core.Tests/ClusterTests.cs b/tests/NATS.Client.Core.Tests/ClusterTests.cs index 05b3f2cec..33cb324ec 100644 --- a/tests/NATS.Client.Core.Tests/ClusterTests.cs +++ b/tests/NATS.Client.Core.Tests/ClusterTests.cs @@ -20,6 +20,7 @@ public async Task Seed_urls_on_retry(bool userAuthInUrl) } }, userAuthInUrl); + await cluster1.StartAsync(); await using var cluster2 = new NatsCluster( new NullOutputHelper(), @@ -34,6 +35,7 @@ public async Task Seed_urls_on_retry(bool userAuthInUrl) } }, userAuthInUrl); + await cluster2.StartAsync(); // Use the first node from each cluster as the seed // so that we can confirm seeds are used on retry diff --git a/tests/NATS.Client.Core.Tests/ConnectionRetryTest.cs b/tests/NATS.Client.Core.Tests/ConnectionRetryTest.cs index 132b727c3..c22070039 100644 --- a/tests/NATS.Client.Core.Tests/ConnectionRetryTest.cs +++ b/tests/NATS.Client.Core.Tests/ConnectionRetryTest.cs @@ -9,8 +9,8 @@ public class ConnectionRetryTest [Fact] public async Task Max_retry_reached_after_disconnect() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(new NatsOpts { MaxReconnectRetry = 2, ReconnectWaitMax = TimeSpan.Zero, ReconnectWaitMin = TimeSpan.FromSeconds(.1), }); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { MaxReconnectRetry = 2, ReconnectWaitMax = TimeSpan.Zero, ReconnectWaitMin = TimeSpan.FromSeconds(.1), }); var signal = new WaitSignal(); nats.ReconnectFailed += (_, _) => @@ -31,8 +31,8 @@ public async Task Max_retry_reached_after_disconnect() [Fact] public async Task Retry_and_connect_after_disconnected() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(new NatsOpts { MaxReconnectRetry = 10, ReconnectWaitMax = TimeSpan.Zero, ReconnectWaitMin = TimeSpan.FromSeconds(2), }); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { MaxReconnectRetry = 10, ReconnectWaitMax = TimeSpan.Zero, ReconnectWaitMin = TimeSpan.FromSeconds(2), }); var signal = new WaitSignal(); nats.ReconnectFailed += (_, _) => @@ -49,7 +49,7 @@ public async Task Retry_and_connect_after_disconnected() await Task.Delay(TimeSpan.FromSeconds(5), cts.Token); - server.StartServerProcess(); + await server.StartServerProcessAsync(); var rtt = await nats.PingAsync(cts.Token); Assert.True(rtt > TimeSpan.Zero); @@ -59,9 +59,9 @@ public async Task Retry_and_connect_after_disconnected() public async Task Reconnect_doesnt_drop_partially_sent_msgs() { const int msgSize = 1048576; // 1MiB - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); - await using var pubConn = server.CreateClientConnection(); + await using var pubConn = await server.CreateClientConnectionAsync(); await pubConn.ConnectAsync(); var timeoutCts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -71,7 +71,7 @@ public async Task Reconnect_doesnt_drop_partially_sent_msgs() var subActive = 0; var subTask = Task.Run(async () => { - await using var subConn = server.CreateClientConnection(); + await using var subConn = await server.CreateClientConnectionAsync(); await using var sub = await subConn.SubscribeCoreAsync>("test", cancellationToken: timeoutCts.Token); await foreach (var msg in sub.Msgs.ReadAllAsync(timeoutCts.Token)) { diff --git a/tests/NATS.Client.Core.Tests/LowLevelApiTest.cs b/tests/NATS.Client.Core.Tests/LowLevelApiTest.cs index 252306f72..a17c6d68a 100644 --- a/tests/NATS.Client.Core.Tests/LowLevelApiTest.cs +++ b/tests/NATS.Client.Core.Tests/LowLevelApiTest.cs @@ -12,8 +12,8 @@ public class LowLevelApiTest [Fact] public async Task Sub_custom_builder_test() { - await using var server = NatsServer.Start(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + var nats = await server.CreateClientConnectionAsync(); var subject = "foo.*"; var builder = new NatsSubCustomTestBuilder(_output); diff --git a/tests/NATS.Client.Core.Tests/NATS.Client.Core.Tests.csproj b/tests/NATS.Client.Core.Tests/NATS.Client.Core.Tests.csproj index e165c3680..167e4c695 100644 --- a/tests/NATS.Client.Core.Tests/NATS.Client.Core.Tests.csproj +++ b/tests/NATS.Client.Core.Tests/NATS.Client.Core.Tests.csproj @@ -6,8 +6,9 @@ false $(NoWarn);CS8002 enable - $(MSBuildProjectDirectory)\test.runsettings + $(MSBuildProjectDirectory)\..\xunit.runsettings false + true diff --git a/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs b/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs index 90cb44ae2..dc971367a 100644 --- a/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs +++ b/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs @@ -208,20 +208,20 @@ public async Task UserCredentialAuthTest(Auth auth) var serverOpts = serverOptsBuilder.Build(); - await using var server = NatsServer.Start(_output, serverOpts, clientOpts, useAuthInUrl); + await using var server = await NatsServer.StartAsync(_output, serverOpts, clientOpts, useAuthInUrl); var subject = Guid.NewGuid().ToString("N"); _output.WriteLine("TRY ANONYMOUS CONNECTION"); { - await using var failConnection = server.CreateClientConnection(ignoreAuthorizationException: true); + await using var failConnection = await server.CreateClientConnectionAsync(ignoreAuthorizationException: true); var natsException = await Assert.ThrowsAsync(async () => await failConnection.PublishAsync(subject, 0)); Assert.Contains("Authorization Violation", natsException.GetBaseException().Message); } - await using var subConnection = server.CreateClientConnection(clientOpts, useAuthInUrl: useAuthInUrl); - await using var pubConnection = server.CreateClientConnection(clientOpts, useAuthInUrl: useAuthInUrl); + await using var subConnection = await server.CreateClientConnectionAsync(clientOpts, useAuthInUrl: useAuthInUrl); + await using var pubConnection = await server.CreateClientConnectionAsync(clientOpts, useAuthInUrl: useAuthInUrl); var signalComplete1 = new WaitSignal(); var signalComplete2 = new WaitSignal(); @@ -257,7 +257,7 @@ await Retry.Until( await disconnectSignal2; _output.WriteLine("START NEW SERVER"); - await using var newServer = NatsServer.Start(_output, serverOpts, clientOpts, useAuthInUrl); + await using var newServer = await NatsServer.StartAsync(_output, serverOpts, clientOpts, useAuthInUrl); await subConnection.ConnectAsync(); // wait open again await pubConnection.ConnectAsync(); // wait open again diff --git a/tests/NATS.Client.Core.Tests/NatsConnectionTest.Headers.cs b/tests/NATS.Client.Core.Tests/NatsConnectionTest.Headers.cs index d050931c9..ee3c95332 100644 --- a/tests/NATS.Client.Core.Tests/NatsConnectionTest.Headers.cs +++ b/tests/NATS.Client.Core.Tests/NatsConnectionTest.Headers.cs @@ -5,9 +5,9 @@ public abstract partial class NatsConnectionTest [Fact] public async Task HeaderParsingTest() { - await using var server = NatsServer.Start(_output, _transportType); + await using var server = await NatsServer.StartAsync(_output, _transportType); - await using var nats = server.CreateClientConnection(); + await using var nats = await server.CreateClientConnectionAsync(); var sync = 0; var signal1 = new WaitSignal>(); diff --git a/tests/NATS.Client.Core.Tests/NatsConnectionTest.QueueGroups.cs b/tests/NATS.Client.Core.Tests/NatsConnectionTest.QueueGroups.cs index 17f47ae1a..702e0f86e 100644 --- a/tests/NATS.Client.Core.Tests/NatsConnectionTest.QueueGroups.cs +++ b/tests/NATS.Client.Core.Tests/NatsConnectionTest.QueueGroups.cs @@ -8,11 +8,11 @@ public async Task QueueGroupsTest() // Use high enough count to create some distribution among subscribers. const int messageCount = 100; - await using var server = NatsServer.Start(_output, _transportType); + await using var server = await NatsServer.StartAsync(_output, _transportType); - await using var conn1 = server.CreateClientConnection(); - await using var conn2 = server.CreateClientConnection(); - await using var conn3 = server.CreateClientConnection(); + await using var conn1 = await server.CreateClientConnectionAsync(); + await using var conn2 = await server.CreateClientConnectionAsync(); + await using var conn3 = await server.CreateClientConnectionAsync(); var sub1 = await conn1.SubscribeCoreAsync("foo.*", queueGroup: "my-group"); var sub2 = await conn2.SubscribeCoreAsync("foo.*", queueGroup: "my-group"); diff --git a/tests/NATS.Client.Core.Tests/NatsConnectionTest.cs b/tests/NATS.Client.Core.Tests/NatsConnectionTest.cs index 23ec3797f..b180a8163 100644 --- a/tests/NATS.Client.Core.Tests/NatsConnectionTest.cs +++ b/tests/NATS.Client.Core.Tests/NatsConnectionTest.cs @@ -18,10 +18,10 @@ protected NatsConnectionTest(ITestOutputHelper output, TransportType transportTy [Fact] public async Task SimplePubSubTest() { - await using var server = NatsServer.Start(_output, _transportType); + await using var server = await NatsServer.StartAsync(_output, _transportType); - await using var subConnection = server.CreateClientConnection(); - await using var pubConnection = server.CreateClientConnection(); + await using var subConnection = await server.CreateClientConnectionAsync(); + await using var pubConnection = await server.CreateClientConnectionAsync(); var subject = Guid.NewGuid().ToString("N"); var signalComplete = new WaitSignal(); @@ -54,10 +54,10 @@ public async Task SimplePubSubTest() [Fact] public async Task PubSubNoRespondersTest() { - await using var server = NatsServer.StartWithTrace(_output); + await using var server = await NatsServer.StartWithTraceAsync(_output); // For no_responders to work we need to the publisher and subscriber to be using the same connection - await using var subConnection = server.CreateClientConnection(); + await using var subConnection = await server.CreateClientConnectionAsync(); var signalComplete = new WaitSignal(); var replyToAddress = subConnection.NewInbox(); @@ -80,15 +80,15 @@ public async Task PubSubNoRespondersTest() [Fact] public async Task EncodingTest() { - await using var server = NatsServer.Start(_output, _transportType); + await using var server = await NatsServer.StartAsync(_output, _transportType); var serializer1 = new NatsJsonContextSerializerRegistry(SimpleClassJsonSerializerContext.Default); foreach (var serializer in new INatsSerializerRegistry[] { serializer1 }) { var options = NatsOpts.Default with { SerializerRegistry = serializer }; - await using var subConnection = server.CreateClientConnection(options); - await using var pubConnection = server.CreateClientConnection(options); + await using var subConnection = await server.CreateClientConnectionAsync(options); + await using var pubConnection = await server.CreateClientConnectionAsync(options); var key = Guid.NewGuid().ToString(); @@ -123,11 +123,11 @@ public async Task EncodingTest() [InlineData(32768)] // 32 KiB public async Task RequestTest(int minSize) { - await using var server = NatsServer.Start(_output, _transportType); + await using var server = await NatsServer.StartAsync(_output, _transportType); var options = NatsOpts.Default with { RequestTimeout = TimeSpan.FromSeconds(5) }; - await using var subConnection = server.CreateClientConnection(options); - await using var pubConnection = server.CreateClientConnection(options); + await using var subConnection = await server.CreateClientConnectionAsync(options); + await using var pubConnection = await server.CreateClientConnectionAsync(options); var subject = Guid.NewGuid().ToString(); var text = new StringBuilder(minSize).Insert(0, "a", minSize).ToString(); @@ -187,11 +187,11 @@ public async Task ReconnectSingleTest() .WithServerDisposeReturnsPorts() .Build(); - await using var server = NatsServer.Start(_output, options); + await using var server = await NatsServer.StartAsync(_output, options); var subject = Guid.NewGuid().ToString(); - await using var subConnection = server.CreateClientConnection(); - await using var pubConnection = server.CreateClientConnection(); + await using var subConnection = await server.CreateClientConnectionAsync(); + await using var pubConnection = await server.CreateClientConnectionAsync(); await subConnection.ConnectAsync(); // wait open await pubConnection.ConnectAsync(); // wait open @@ -243,7 +243,7 @@ await Retry.Until( // start new nats server on same port _output.WriteLine("START NEW SERVER"); - await using var newServer = NatsServer.Start(_output, options); + await using var newServer = await NatsServer.StartAsync(_output, options); await subConnection.ConnectAsync(); // wait open again await pubConnection.ConnectAsync(); // wait open again @@ -267,13 +267,14 @@ await Retry.Until( public async Task ReconnectClusterTest() { await using var cluster = new NatsCluster(_output, _transportType); + await cluster.StartAsync(); await Task.Delay(TimeSpan.FromSeconds(5)); // wait for cluster completely connected. var subject = Guid.NewGuid().ToString(); - await using var connection1 = cluster.Server1.CreateClientConnection(); - await using var connection2 = cluster.Server2.CreateClientConnection(); - await using var connection3 = cluster.Server3.CreateClientConnection(); + await using var connection1 = await cluster.Server1.CreateClientConnectionAsync(); + await using var connection2 = await cluster.Server2.CreateClientConnectionAsync(); + await using var connection3 = await cluster.Server3.CreateClientConnectionAsync(); await connection1.ConnectAsync(); await connection2.ConnectAsync(); @@ -417,7 +418,7 @@ public void NewInboxVeryLongPrefixReturnsPrefixWithNuid() public async Task OnSocketAvailableAsync_ShouldBeInvokedOnInitialConnection() { // Arrange - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); var clientOpts = server.ClientOpts(NatsOpts.Default); var wasInvoked = false; @@ -440,7 +441,7 @@ public async Task OnSocketAvailableAsync_ShouldBeInvokedOnInitialConnection() public async Task OnSocketAvailableAsync_ShouldBeInvokedOnReconnection() { // Arrange - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); var clientOpts = server.ClientOpts(NatsOpts.Default); var invocationCount = 0; @@ -460,7 +461,7 @@ public async Task OnSocketAvailableAsync_ShouldBeInvokedOnReconnection() // Act // Simulate reconnection - server.StartServerProcess(); + await server.StartServerProcessAsync(); await nats.ConnectAsync(); // Assert @@ -471,8 +472,8 @@ public async Task OnSocketAvailableAsync_ShouldBeInvokedOnReconnection() public async Task ReconnectOnOpenConnection_ShouldDisconnectAndOpenNewConnection() { // Arrange - await using var server = NatsServer.Start(_output, _transportType); - await using var connection = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(_output, _transportType); + await using var connection = await server.CreateClientConnectionAsync(); await connection.ConnectAsync(); // wait first connection open var openedCount = 0; @@ -509,7 +510,7 @@ public async Task ReconnectOnOpenConnection_ShouldDisconnectAndOpenNewConnection [SkipIfNatsServer(versionEarlierThan: "2.10")] public async Task LameDuckModeActivated_EventHandlerShouldBeInvokedWhenInfoWithLDMReceived() { - await using var natsServer = NatsServer.Start( + await using var natsServer = await NatsServer.StartAsync( _output, new NatsServerOptsBuilder() .AddServerConfigText(""" @@ -536,7 +537,7 @@ public async Task LameDuckModeActivated_EventHandlerShouldBeInvokedWhenInfoWithL }, }; - await using var connection = natsServer.CreateClientConnection(natsOpts); + await using var connection = await natsServer.CreateClientConnectionAsync(natsOpts); await connection.ConnectAsync(); var invocationCount = 0; diff --git a/tests/NATS.Client.Core.Tests/ProtocolTest.cs b/tests/NATS.Client.Core.Tests/ProtocolTest.cs index bb7d2ef71..a538d8eda 100644 --- a/tests/NATS.Client.Core.Tests/ProtocolTest.cs +++ b/tests/NATS.Client.Core.Tests/ProtocolTest.cs @@ -11,7 +11,7 @@ public class ProtocolTest [InlineData(1024 * 1024)] public async Task Protocol_parser_under_load(int size) { - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); var logger = new InMemoryTestLoggerFactory(LogLevel.Error); var opts = server.ClientOpts(NatsOpts.Default) with { LoggerFactory = logger }; var nats = new NatsConnection(opts); @@ -80,7 +80,7 @@ public async Task Protocol_parser_under_load(int size) { try { - await server.CreateClientConnection().PingAsync(cts.Token); + await (await server.CreateClientConnectionAsync()).PingAsync(cts.Token); break; } catch diff --git a/tests/NATS.Client.Core.Tests/SubscriptionTest.cs b/tests/NATS.Client.Core.Tests/SubscriptionTest.cs index 1c12f50cf..569f1b5bc 100644 --- a/tests/NATS.Client.Core.Tests/SubscriptionTest.cs +++ b/tests/NATS.Client.Core.Tests/SubscriptionTest.cs @@ -13,7 +13,7 @@ public async Task Subscription_periodic_cleanup_test() .Trace() .UseTransport(TransportType.Tcp) .Build(); - await using var server = NatsServer.Start(_output, serverOptions); + await using var server = await NatsServer.StartAsync(_output, serverOptions); var options = NatsOpts.Default with { SubscriptionCleanUpInterval = TimeSpan.FromSeconds(1) }; var (nats, proxy) = server.CreateProxiedClientConnection(options); @@ -50,7 +50,7 @@ await Retry.Until( [Fact] public async Task Subscription_cleanup_on_message_receive_test() { - await using var server = NatsServer.Start(_output, TransportType.Tcp); + await using var server = await NatsServer.StartAsync(_output, TransportType.Tcp); // Make sure time won't kick-in and unsubscribe var options = NatsOpts.Default with { SubscriptionCleanUpInterval = TimeSpan.MaxValue }; @@ -86,8 +86,8 @@ await Retry.Until( [Fact] public async Task Auto_unsubscribe_on_max_messages_with_inbox_subscription_test() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var subject = nats.NewInbox(); await using var sub1 = await nats.SubscribeCoreAsync(subject, opts: new NatsSubOpts { MaxMsgs = 1 }); @@ -125,8 +125,8 @@ public async Task Auto_unsubscribe_on_max_messages_with_inbox_subscription_test( [Fact] public async Task Auto_unsubscribe_on_max_messages_test() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); const string subject = "foo1"; const int maxMsgs = 99; var opts = new NatsSubOpts { MaxMsgs = maxMsgs }; @@ -155,8 +155,8 @@ public async Task Auto_unsubscribe_on_max_messages_test() [Fact] public async Task Auto_unsubscribe_on_timeout_test() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); const string subject = "foo2"; var opts = new NatsSubOpts { Timeout = TimeSpan.FromSeconds(1) }; @@ -178,8 +178,8 @@ public async Task Auto_unsubscribe_on_timeout_test() [Fact] public async Task Auto_unsubscribe_on_idle_timeout_test() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); const string subject = "foo3"; var opts = new NatsSubOpts { IdleTimeout = TimeSpan.FromSeconds(3) }; @@ -209,8 +209,8 @@ public async Task Auto_unsubscribe_on_idle_timeout_test() [Fact] public async Task Manual_unsubscribe_test() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); const string subject = "foo4"; await using var sub = await nats.SubscribeCoreAsync(subject); @@ -237,7 +237,7 @@ public async Task Manual_unsubscribe_test() [Fact] public async Task Mux_inbox_reconnect_test() { - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); var (nats, proxy) = server.CreateProxiedClientConnection(); try { @@ -293,8 +293,8 @@ await Retry.Until( [Fact] public async Task Serialization_exceptions() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); diff --git a/tests/NATS.Client.Core.Tests/TlsClientTest.cs b/tests/NATS.Client.Core.Tests/TlsClientTest.cs index 8f39c8bf7..830ef7091 100644 --- a/tests/NATS.Client.Core.Tests/TlsClientTest.cs +++ b/tests/NATS.Client.Core.Tests/TlsClientTest.cs @@ -16,7 +16,7 @@ public class TlsClientTest [InlineData(TransportType.WebSocketSecure)] public async Task Client_connect_using_certificate(TransportType transportType) { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(transportType, tlsVerify: true) @@ -35,7 +35,7 @@ await Task.Run(async () => [Fact] public async Task Client_connect_using_certificate_and_revocation_check() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(TransportType.Tls, tlsVerify: true) @@ -69,7 +69,7 @@ await Task.Run(async () => [InlineData(TransportType.WebSocketSecure)] public async Task Client_cannot_connect_without_certificate(TransportType transportType) { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(transportType, tlsVerify: true) diff --git a/tests/NATS.Client.Core.Tests/TlsFirstTest.cs b/tests/NATS.Client.Core.Tests/TlsFirstTest.cs index bbc624950..62d96e636 100644 --- a/tests/NATS.Client.Core.Tests/TlsFirstTest.cs +++ b/tests/NATS.Client.Core.Tests/TlsFirstTest.cs @@ -9,7 +9,7 @@ public class TlsFirstTest [SkipIfNatsServer(doesNotSupportTlsFirst: true)] public async Task Implicit_TLS_connection() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(TransportType.Tls, tlsFirst: true) @@ -43,7 +43,7 @@ public async Task Implicit_TLS_connection() [Fact] public async Task Implicit_TLS_fails_when_disabled() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(TransportType.Tls, tlsFirst: false) diff --git a/tests/NATS.Client.Core.Tests/TlsOptsTest.cs b/tests/NATS.Client.Core.Tests/TlsOptsTest.cs index 59512aa2e..fb19f6a55 100644 --- a/tests/NATS.Client.Core.Tests/TlsOptsTest.cs +++ b/tests/NATS.Client.Core.Tests/TlsOptsTest.cs @@ -150,7 +150,7 @@ public async Task Client_connect(string? clientCertFile, string? clientKeyFile, const string caFile = "resources/certs/ca-cert.pem"; - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(TransportType.Tls, tlsVerify: true) diff --git a/tests/NATS.Client.Core.Tests/WebSocketOptionsTest.cs b/tests/NATS.Client.Core.Tests/WebSocketOptionsTest.cs index bd34eb41d..affedc049 100644 --- a/tests/NATS.Client.Core.Tests/WebSocketOptionsTest.cs +++ b/tests/NATS.Client.Core.Tests/WebSocketOptionsTest.cs @@ -13,7 +13,7 @@ public class WebSocketOptionsTest [Fact] public async Task Exception_in_callback_throws_nats_exception() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( new NullOutputHelper(), new NatsServerOptsBuilder() .UseTransport(TransportType.WebSocket) diff --git a/tests/NATS.Client.Core2.Tests/NATS.Client.Core2.Tests.csproj b/tests/NATS.Client.Core2.Tests/NATS.Client.Core2.Tests.csproj index 75d41bb88..ae15eaf33 100644 --- a/tests/NATS.Client.Core2.Tests/NATS.Client.Core2.Tests.csproj +++ b/tests/NATS.Client.Core2.Tests/NATS.Client.Core2.Tests.csproj @@ -8,8 +8,9 @@ false $(NoWarn);CS8002 enable - $(MSBuildProjectDirectory)\test.runsettings + $(MSBuildProjectDirectory)\..\xunit.runsettings false + true diff --git a/tests/NATS.Client.Core2.Tests/test.runsettings b/tests/NATS.Client.Core2.Tests/test.runsettings deleted file mode 100644 index 27c41ad33..000000000 --- a/tests/NATS.Client.Core2.Tests/test.runsettings +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1 - 300000 - - diff --git a/tests/NATS.Client.CoreUnit.Tests/NATS.Client.CoreUnit.Tests.csproj b/tests/NATS.Client.CoreUnit.Tests/NATS.Client.CoreUnit.Tests.csproj index 753b727b4..338f77c66 100644 --- a/tests/NATS.Client.CoreUnit.Tests/NATS.Client.CoreUnit.Tests.csproj +++ b/tests/NATS.Client.CoreUnit.Tests/NATS.Client.CoreUnit.Tests.csproj @@ -8,8 +8,9 @@ false $(NoWarn);CS8002 enable - $(MSBuildProjectDirectory)\test.runsettings + $(MSBuildProjectDirectory)\..\xunit.runsettings false + true diff --git a/tests/NATS.Client.CoreUnit.Tests/test.runsettings b/tests/NATS.Client.CoreUnit.Tests/test.runsettings deleted file mode 100644 index 27c41ad33..000000000 --- a/tests/NATS.Client.CoreUnit.Tests/test.runsettings +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1 - 300000 - - diff --git a/tests/NATS.Client.JetStream.Tests/ClusterTests.cs b/tests/NATS.Client.JetStream.Tests/ClusterTests.cs index 66e58b488..47d3cf301 100644 --- a/tests/NATS.Client.JetStream.Tests/ClusterTests.cs +++ b/tests/NATS.Client.JetStream.Tests/ClusterTests.cs @@ -12,7 +12,8 @@ public class ClusterTests public async Task Form_a_local_cluster() { await using var cluster = new NatsCluster(new NullOutputHelper(), TransportType.Tcp, (i, b) => b.WithServerName($"n{i}").UseJetStream()); - await using var nats = cluster.Server1.CreateClientConnection(); + await cluster.StartAsync(); + await using var nats = await cluster.Server1.CreateClientConnectionAsync(); await nats.PingAsync(); diff --git a/tests/NATS.Client.JetStream.Tests/ConsumerConsumeTest.cs b/tests/NATS.Client.JetStream.Tests/ConsumerConsumeTest.cs index c86df1662..2e783a17e 100644 --- a/tests/NATS.Client.JetStream.Tests/ConsumerConsumeTest.cs +++ b/tests/NATS.Client.JetStream.Tests/ConsumerConsumeTest.cs @@ -60,7 +60,7 @@ await Assert.ThrowsAnyAsync(async () => [Fact] public async Task Consume_msgs_test() { - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); var (nats, proxy) = server.CreateProxiedClientConnection(); var js = new NatsJSContext(nats); @@ -120,7 +120,7 @@ await Retry.Until( public async Task Consume_idle_heartbeat_test() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); - await using var server = NatsServer.StartJSWithTrace(_output); + await using var server = await NatsServer.StartJSWithTraceAsync(_output); var (nats, proxy) = server.CreateProxiedClientConnection(); @@ -196,10 +196,10 @@ await Retry.Until( public async Task Consume_reconnect_test() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); var (nats, proxy) = server.CreateProxiedClientConnection(); - await using var nats2 = server.CreateClientConnection(); + await using var nats2 = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var js2 = new NatsJSContext(nats2); @@ -345,8 +345,8 @@ await Retry.Until( [Fact] public async Task Consume_stop_test() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -421,8 +421,8 @@ await Retry.Until( [Fact] public async Task Serialization_errors() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); @@ -449,8 +449,8 @@ public async Task Serialization_errors() [Fact] public async Task Consume_right_amount_of_messages() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -506,8 +506,8 @@ await Retry.Until("consumer stats updated", async () => [Fact] public async Task Consume_right_amount_of_messages_when_ack_wait_exceeded() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(20)); diff --git a/tests/NATS.Client.JetStream.Tests/ConsumerNextTest.cs b/tests/NATS.Client.JetStream.Tests/ConsumerNextTest.cs index 285375d70..019308bc6 100644 --- a/tests/NATS.Client.JetStream.Tests/ConsumerNextTest.cs +++ b/tests/NATS.Client.JetStream.Tests/ConsumerNextTest.cs @@ -11,8 +11,8 @@ public class ConsumerNextTest [Fact] public async Task Next_test() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); diff --git a/tests/NATS.Client.JetStream.Tests/ConsumerNotificationTest.cs b/tests/NATS.Client.JetStream.Tests/ConsumerNotificationTest.cs index 380b89744..8a5728b01 100644 --- a/tests/NATS.Client.JetStream.Tests/ConsumerNotificationTest.cs +++ b/tests/NATS.Client.JetStream.Tests/ConsumerNotificationTest.cs @@ -9,8 +9,8 @@ public class ConsumerNotificationTest [SkipOnPlatform("WINDOWS", "doesn't support signals")] public async Task Non_terminal_errors_sent_as_notifications() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); @@ -83,8 +83,8 @@ public async Task Non_terminal_errors_sent_as_notifications() [Fact] public async Task Exceeded_max_errors() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); diff --git a/tests/NATS.Client.JetStream.Tests/ConsumerSetupTest.cs b/tests/NATS.Client.JetStream.Tests/ConsumerSetupTest.cs index 395857db8..1bcf97d01 100644 --- a/tests/NATS.Client.JetStream.Tests/ConsumerSetupTest.cs +++ b/tests/NATS.Client.JetStream.Tests/ConsumerSetupTest.cs @@ -8,8 +8,8 @@ public class ConsumerSetupTest [Fact] public async Task Create_push_consumer() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -40,8 +40,8 @@ await js.CreateOrUpdateConsumerAsync( [SkipIfNatsServer(versionEarlierThan: "2.11")] public async Task Create_paused_consumer() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContextFactory().CreateContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); diff --git a/tests/NATS.Client.JetStream.Tests/CustomSerializerTest.cs b/tests/NATS.Client.JetStream.Tests/CustomSerializerTest.cs index e93d3345d..e910b7096 100644 --- a/tests/NATS.Client.JetStream.Tests/CustomSerializerTest.cs +++ b/tests/NATS.Client.JetStream.Tests/CustomSerializerTest.cs @@ -8,8 +8,8 @@ public class CustomSerializerTest [Fact] public async Task When_consuming_ack_should_be_serialized_normally_if_custom_serializer_used() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(new NatsOpts + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { SerializerRegistry = new Level42SerializerRegistry(), RequestTimeout = TimeSpan.FromSeconds(10), diff --git a/tests/NATS.Client.JetStream.Tests/DoubleAckNakDelayTests.cs b/tests/NATS.Client.JetStream.Tests/DoubleAckNakDelayTests.cs index 0d3af067a..d7d388b82 100644 --- a/tests/NATS.Client.JetStream.Tests/DoubleAckNakDelayTests.cs +++ b/tests/NATS.Client.JetStream.Tests/DoubleAckNakDelayTests.cs @@ -12,7 +12,7 @@ public class DoubleAckNakDelayTests [Fact] public async Task Double_ack_received_messages() { - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); var (nats1, proxy) = server.CreateProxiedClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); await using var nats = nats1; var js = new NatsJSContext(nats); @@ -46,7 +46,7 @@ public async Task Double_ack_received_messages() [Fact] public async Task Delay_nak_received_messages() { - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); var (nats1, proxy) = server.CreateProxiedClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); await using var nats = nats1; var js = new NatsJSContext(nats); diff --git a/tests/NATS.Client.JetStream.Tests/DoubleAckTest.cs b/tests/NATS.Client.JetStream.Tests/DoubleAckTest.cs index 0ddbe9dbb..1b573d7ef 100644 --- a/tests/NATS.Client.JetStream.Tests/DoubleAckTest.cs +++ b/tests/NATS.Client.JetStream.Tests/DoubleAckTest.cs @@ -8,9 +8,9 @@ public class DoubleAckTest public async Task Fetch_should_not_block_socket() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); - await using var nats = server.CreateClientConnection(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); diff --git a/tests/NATS.Client.JetStream.Tests/JetStreamTest.cs b/tests/NATS.Client.JetStream.Tests/JetStreamTest.cs index 310bc9553..8ea724784 100644 --- a/tests/NATS.Client.JetStream.Tests/JetStreamTest.cs +++ b/tests/NATS.Client.JetStream.Tests/JetStreamTest.cs @@ -51,14 +51,14 @@ public async Task Stream_invalid_name_test(string? streamName) [Fact] public async Task Create_stream_test() { - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( outputHelper: _output, opts: new NatsServerOptsBuilder() .UseTransport(TransportType.Tcp) .Trace() .UseJetStream() .Build()); - var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); // Happy user { diff --git a/tests/NATS.Client.JetStream.Tests/ListTests.cs b/tests/NATS.Client.JetStream.Tests/ListTests.cs index 7caabd937..b505bdf21 100644 --- a/tests/NATS.Client.JetStream.Tests/ListTests.cs +++ b/tests/NATS.Client.JetStream.Tests/ListTests.cs @@ -12,8 +12,8 @@ public class ListTests [Fact] public async Task List_streams() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(5) }); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(5) }); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -82,8 +82,8 @@ public async Task List_streams() [Fact] public async Task List_consumers() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(5) }); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(5) }); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); diff --git a/tests/NATS.Client.JetStream.Tests/ManageConsumerTest.cs b/tests/NATS.Client.JetStream.Tests/ManageConsumerTest.cs index 198cf4e02..7038aae62 100644 --- a/tests/NATS.Client.JetStream.Tests/ManageConsumerTest.cs +++ b/tests/NATS.Client.JetStream.Tests/ManageConsumerTest.cs @@ -12,8 +12,8 @@ public class ManageConsumerTest [Fact] public async Task Create_get_consumer() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(15)); @@ -43,8 +43,8 @@ public async Task List_delete_consumer() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); await js.CreateOrUpdateConsumerAsync("s1", "c1", cancellationToken: cts.Token); @@ -85,8 +85,8 @@ public async Task List_delete_consumer() [SkipIfNatsServer(versionEarlierThan: "2.11")] public async Task Pause_resume_consumer() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContextFactory().CreateContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); @@ -122,8 +122,8 @@ public async Task Pause_resume_consumer() [SkipIfNatsServer(versionEarlierThan: "2.10")] public async Task Consumer_create_update_action() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var streamConfig = new StreamConfig { Name = "s1" }; diff --git a/tests/NATS.Client.JetStream.Tests/ManageStreamTest.cs b/tests/NATS.Client.JetStream.Tests/ManageStreamTest.cs index 7f607319b..8869d7480 100644 --- a/tests/NATS.Client.JetStream.Tests/ManageStreamTest.cs +++ b/tests/NATS.Client.JetStream.Tests/ManageStreamTest.cs @@ -12,8 +12,8 @@ public class ManageStreamTest [Fact] public async Task Account_info_create_get_update_stream() { - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -61,8 +61,8 @@ public async Task List_delete_stream() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); @@ -103,8 +103,8 @@ public async Task Delete_one_msg() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); @@ -133,8 +133,8 @@ public async Task Create_or_update_stream_should_be_create_stream_if_stream_does { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var streamConfig = new StreamConfig("s1", ["s1.*"]) @@ -153,8 +153,8 @@ public async Task Create_or_update_stream_should_be_update_stream_if_stream_exis { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var streamConfig = new StreamConfig("s1", ["s1.*"]) @@ -173,8 +173,8 @@ public async Task Create_or_update_stream_should_be_throwing_update_operation_er { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var streamConfig = new StreamConfig("s1", ["s1.*"]) diff --git a/tests/NATS.Client.JetStream.Tests/MessageInterfaceTest.cs b/tests/NATS.Client.JetStream.Tests/MessageInterfaceTest.cs index 5a8030ee1..b7b9f6812 100644 --- a/tests/NATS.Client.JetStream.Tests/MessageInterfaceTest.cs +++ b/tests/NATS.Client.JetStream.Tests/MessageInterfaceTest.cs @@ -7,8 +7,8 @@ public class MessageInterfaceTest [Fact] public async Task Using_message_interface() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); diff --git a/tests/NATS.Client.JetStream.Tests/NATS.Client.JetStream.Tests.csproj b/tests/NATS.Client.JetStream.Tests/NATS.Client.JetStream.Tests.csproj index cff8c2b18..a1c91a113 100644 --- a/tests/NATS.Client.JetStream.Tests/NATS.Client.JetStream.Tests.csproj +++ b/tests/NATS.Client.JetStream.Tests/NATS.Client.JetStream.Tests.csproj @@ -4,7 +4,7 @@ net6.0;net8.0 enable enable - + $(MSBuildProjectDirectory)\..\xunit.runsettings false true diff --git a/tests/NATS.Client.JetStream.Tests/NatsJsContextFactoryTest.cs b/tests/NATS.Client.JetStream.Tests/NatsJsContextFactoryTest.cs index 615412237..049b3cf6c 100644 --- a/tests/NATS.Client.JetStream.Tests/NatsJsContextFactoryTest.cs +++ b/tests/NATS.Client.JetStream.Tests/NatsJsContextFactoryTest.cs @@ -14,14 +14,14 @@ public class NatsJSContextFactoryTest public async Task Create_Context_Test() { // Arrange - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( outputHelper: _output, opts: new NatsServerOptsBuilder() .UseTransport(TransportType.Tcp) .Trace() .UseJetStream() .Build()); - await using var connection = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var connection = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var factory = new NatsJSContextFactory(); // Act @@ -35,14 +35,14 @@ public async Task Create_Context_Test() public async Task Create_Context_WithOpts_Test() { // Arrange - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( outputHelper: _output, opts: new NatsServerOptsBuilder() .UseTransport(TransportType.Tcp) .Trace() .UseJetStream() .Build()); - await using var connection = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var connection = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var factory = new NatsJSContextFactory(); var opts = new NatsJSOpts(connection.Opts); diff --git a/tests/NATS.Client.JetStream.Tests/OrderedConsumerTest.cs b/tests/NATS.Client.JetStream.Tests/OrderedConsumerTest.cs index b8398b932..79f7cbd7a 100644 --- a/tests/NATS.Client.JetStream.Tests/OrderedConsumerTest.cs +++ b/tests/NATS.Client.JetStream.Tests/OrderedConsumerTest.cs @@ -13,8 +13,8 @@ public class OrderedConsumerTest public async Task Consume_test() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var stream = await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); @@ -45,8 +45,8 @@ public async Task Consume_test() [Fact] public async Task Consume_reconnect_publish() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); @@ -88,8 +88,8 @@ public async Task Consume_reconnect_publish() public async Task Fetch_test() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var stream = await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); @@ -122,8 +122,8 @@ public async Task Fetch_test() public async Task Fetch_no_wait_test() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var stream = await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); @@ -185,8 +185,8 @@ public async Task Fetch_no_wait_test() public async Task Next_test() { var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var stream = await js.CreateStreamAsync("s1", new[] { "s1.*" }, cts.Token); diff --git a/tests/NATS.Client.JetStream.Tests/PublishConcurrentTests.cs b/tests/NATS.Client.JetStream.Tests/PublishConcurrentTests.cs index 35e99e8be..5d4daa47a 100644 --- a/tests/NATS.Client.JetStream.Tests/PublishConcurrentTests.cs +++ b/tests/NATS.Client.JetStream.Tests/PublishConcurrentTests.cs @@ -12,8 +12,8 @@ public class PublishConcurrentTests [Fact] public async Task Publish_concurrently() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); await js.CreateStreamAsync("s1", ["s1.>"]); diff --git a/tests/NATS.Client.JetStream.Tests/PublishTest.cs b/tests/NATS.Client.JetStream.Tests/PublishTest.cs index 3b01ccbb6..30863af38 100644 --- a/tests/NATS.Client.JetStream.Tests/PublishTest.cs +++ b/tests/NATS.Client.JetStream.Tests/PublishTest.cs @@ -13,8 +13,8 @@ public class PublishTest [Fact] public async Task Publish_test() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); @@ -168,7 +168,7 @@ public async Task Publish_retry_test() // give enough time for retries to avoid NatsJSPublishNoResponseExceptions var natsOpts = NatsOpts.Default with { RequestTimeout = TimeSpan.FromSeconds(3) }; - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); var (nats1, proxy) = server.CreateProxiedClientConnection(natsOpts); await using var nats = nats1; @@ -198,7 +198,7 @@ public async Task Publish_retry_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(45)); // use different connection to create stream and consumer to avoid request timeouts - await using var nats0 = server.CreateClientConnection(); + await using var nats0 = await server.CreateClientConnectionAsync(); var js0 = new NatsJSContext(nats0); await js0.CreateStreamAsync("s1", new[] { "s1.>" }, cts.Token); await js0.CreateOrUpdateConsumerAsync("s1", "c1", cancellationToken: cts.Token); diff --git a/tests/NATS.Client.KeyValueStore.Tests/GetKeysTest.cs b/tests/NATS.Client.KeyValueStore.Tests/GetKeysTest.cs index 41fef6333..81399a506 100644 --- a/tests/NATS.Client.KeyValueStore.Tests/GetKeysTest.cs +++ b/tests/NATS.Client.KeyValueStore.Tests/GetKeysTest.cs @@ -13,8 +13,8 @@ public async Task Get_keys_should_not_hang_when_there_are_deleted_keys() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats1 = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats1 = await server.CreateClientConnectionAsync(); var js1 = new NatsJSContext(nats1); var kv1 = new NatsKVContext(js1); var store1 = await kv1.CreateStoreAsync(config, cancellationToken: cancellationToken); @@ -55,8 +55,8 @@ public async Task Get_keys_when_empty() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats1 = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats1 = await server.CreateClientConnectionAsync(); var js1 = new NatsJSContext(nats1); var kv1 = new NatsKVContext(js1); var store1 = await kv1.CreateStoreAsync(config, cancellationToken: cancellationToken); @@ -90,8 +90,8 @@ public async Task Get_filtered_keys() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats1 = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats1 = await server.CreateClientConnectionAsync(); var js1 = new NatsJSContext(nats1); var kv1 = new NatsKVContext(js1); var store1 = await kv1.CreateStoreAsync(config, cancellationToken: cancellationToken); diff --git a/tests/NATS.Client.KeyValueStore.Tests/KeyValueContextTest.cs b/tests/NATS.Client.KeyValueStore.Tests/KeyValueContextTest.cs index 438229d34..4249cd633 100644 --- a/tests/NATS.Client.KeyValueStore.Tests/KeyValueContextTest.cs +++ b/tests/NATS.Client.KeyValueStore.Tests/KeyValueContextTest.cs @@ -11,8 +11,8 @@ public async Task Create_store_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -30,8 +30,8 @@ public async Task Update_store_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(60)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -55,8 +55,8 @@ public async Task Create_store_via_create_or_update_store_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(60)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -78,8 +78,8 @@ public async Task Update_store_via_create_or_update_store_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(60)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -102,8 +102,8 @@ public async Task Delete_store_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -124,8 +124,8 @@ public async Task Get_bucket_names_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -153,8 +153,8 @@ public async Task Get_statuses_test() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); diff --git a/tests/NATS.Client.KeyValueStore.Tests/KeyValueStoreTest.cs b/tests/NATS.Client.KeyValueStore.Tests/KeyValueStoreTest.cs index 8504f04ac..e638ef028 100644 --- a/tests/NATS.Client.KeyValueStore.Tests/KeyValueStoreTest.cs +++ b/tests/NATS.Client.KeyValueStore.Tests/KeyValueStoreTest.cs @@ -12,8 +12,8 @@ public class KeyValueStoreTest [Fact] public async Task Simple_create_put_get_test() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -31,8 +31,8 @@ public async Task Simple_create_put_get_test() [Fact] public async Task Handle_non_direct_gets() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -72,8 +72,8 @@ public async Task Get_keys() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -109,8 +109,8 @@ public async Task Get_key_revisions() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -167,8 +167,8 @@ public async Task Delete_and_purge() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -293,8 +293,8 @@ public async Task Purge_deletes() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -375,8 +375,8 @@ public async Task Update_with_revisions() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -413,8 +413,8 @@ public async Task Create() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -465,8 +465,8 @@ public async Task History() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -509,8 +509,8 @@ public async Task Status() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -529,8 +529,8 @@ public async Task Status() [SkipIfNatsServer(versionEarlierThan: "2.10")] public async Task Compressed_storage() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -558,8 +558,8 @@ public async Task Compressed_storage() [Fact] public async Task Validate_keys() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -621,8 +621,8 @@ public async Task TestDirectMessageRepublishedSubject() var streamConfig = new StreamConfig(streamBucketName, new[] { streamSubject }) { Republish = new Republish { Src = ">", Dest = republishDest } }; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -652,8 +652,8 @@ public async Task TestDirectMessageRepublishedSubject() [SkipIfNatsServer(versionEarlierThan: "2.10")] public async Task Test_CombinedSources() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); diff --git a/tests/NATS.Client.KeyValueStore.Tests/NATS.Client.KeyValueStore.Tests.csproj b/tests/NATS.Client.KeyValueStore.Tests/NATS.Client.KeyValueStore.Tests.csproj index 17292da38..55c28eba2 100644 --- a/tests/NATS.Client.KeyValueStore.Tests/NATS.Client.KeyValueStore.Tests.csproj +++ b/tests/NATS.Client.KeyValueStore.Tests/NATS.Client.KeyValueStore.Tests.csproj @@ -4,7 +4,7 @@ net6.0;net8.0 enable enable - + $(MSBuildProjectDirectory)\..\xunit.runsettings false true diff --git a/tests/NATS.Client.KeyValueStore.Tests/NatsKVContextFactoryTest.cs b/tests/NATS.Client.KeyValueStore.Tests/NatsKVContextFactoryTest.cs index d82eac404..1c6b0af65 100644 --- a/tests/NATS.Client.KeyValueStore.Tests/NatsKVContextFactoryTest.cs +++ b/tests/NATS.Client.KeyValueStore.Tests/NatsKVContextFactoryTest.cs @@ -13,14 +13,14 @@ public class NatsKVContextFactoryTest public async Task Create_Context_Test() { // Arrange - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( outputHelper: _output, opts: new NatsServerOptsBuilder() .UseTransport(TransportType.Tcp) .Trace() .UseJetStream() .Build()); - await using var connection = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var connection = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var jsFactory = new NatsJSContextFactory(); var jsContext = jsFactory.CreateContext(connection); var factory = new NatsKVContextFactory(); diff --git a/tests/NATS.Client.KeyValueStore.Tests/NatsKVWatcherTest.cs b/tests/NATS.Client.KeyValueStore.Tests/NatsKVWatcherTest.cs index a66ca1f5f..615a5cb50 100644 --- a/tests/NATS.Client.KeyValueStore.Tests/NatsKVWatcherTest.cs +++ b/tests/NATS.Client.KeyValueStore.Tests/NatsKVWatcherTest.cs @@ -20,8 +20,8 @@ public async Task Watcher_reconnect_with_history() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats1 = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats1 = await server.CreateClientConnectionAsync(); var js1 = new NatsJSContext(nats1); var kv1 = new NatsKVContext(js1); var store1 = await kv1.CreateStoreAsync(config, cancellationToken: cancellationToken); @@ -103,8 +103,8 @@ public async Task Watch_all() var cts = new CancellationTokenSource(timeout); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -147,8 +147,8 @@ public async Task Watch_subset() var cts = new CancellationTokenSource(timeout); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -213,8 +213,8 @@ public async Task Watcher_timeout_reconnect() var cts = new CancellationTokenSource(timeout); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJSWithTrace(_output); - await using var nats1 = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSWithTraceAsync(_output); + await using var nats1 = await server.CreateClientConnectionAsync(); var js1 = new NatsJSContext(nats1); var kv1 = new NatsKVContext(js1); var store1 = await kv1.CreateStoreAsync(bucket, cancellationToken: cancellationToken); @@ -308,8 +308,8 @@ await Retry.Until( [Fact] public async Task Watch_push_consumer_flow_control() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -348,8 +348,8 @@ public async Task Watch_empty_bucket_for_end_of_data() var cts = new CancellationTokenSource(timeout); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -389,8 +389,8 @@ public async Task Watch_empty_bucket_for_end_of_data() [Fact] public async Task Serialization_errors() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -415,8 +415,8 @@ public async Task Serialization_errors() [Fact] public async Task Watch_with_empty_filter() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -436,8 +436,8 @@ await Assert.ThrowsAsync(async () => [SkipIfNatsServer(versionLaterThan: "2.9.999")] public async Task Watch_with_multiple_filter_on_old_server() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var kv = new NatsKVContext(js); @@ -465,8 +465,8 @@ public async Task Watch_with_multiple_filter_on_old_server() [Fact] public async Task Watch_resume_at_revision() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); const string bucket = "Watch_resume_at_revision"; var config = new NatsKVConfig(bucket) { History = 10 }; @@ -548,8 +548,8 @@ public async Task Watch_resume_at_revision() [Fact] public async Task Validate_watch_options() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); const string bucket = nameof(Validate_watch_options); var config = new NatsKVConfig(bucket) { History = 10 }; diff --git a/tests/NATS.Client.ObjectStore.Tests/CompatTest.cs b/tests/NATS.Client.ObjectStore.Tests/CompatTest.cs index 5f984c383..63ee4b89b 100644 --- a/tests/NATS.Client.ObjectStore.Tests/CompatTest.cs +++ b/tests/NATS.Client.ObjectStore.Tests/CompatTest.cs @@ -10,8 +10,8 @@ public class CompatTest [Fact] public async Task Headers_serialization() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); diff --git a/tests/NATS.Client.ObjectStore.Tests/NATS.Client.ObjectStore.Tests.csproj b/tests/NATS.Client.ObjectStore.Tests/NATS.Client.ObjectStore.Tests.csproj index 2c6d7bc84..f539ed7dd 100644 --- a/tests/NATS.Client.ObjectStore.Tests/NATS.Client.ObjectStore.Tests.csproj +++ b/tests/NATS.Client.ObjectStore.Tests/NATS.Client.ObjectStore.Tests.csproj @@ -4,7 +4,7 @@ net6.0;net8.0 enable enable - + $(MSBuildProjectDirectory)\..\xunit.runsettings false true diff --git a/tests/NATS.Client.ObjectStore.Tests/NatsObjContextFactoryTest.cs b/tests/NATS.Client.ObjectStore.Tests/NatsObjContextFactoryTest.cs index 78d94dee2..dcc8a6eb5 100644 --- a/tests/NATS.Client.ObjectStore.Tests/NatsObjContextFactoryTest.cs +++ b/tests/NATS.Client.ObjectStore.Tests/NatsObjContextFactoryTest.cs @@ -13,14 +13,14 @@ public class NatsObjContextFactoryTest public async Task Create_Context_Test() { // Arrange - await using var server = NatsServer.Start( + await using var server = await NatsServer.StartAsync( outputHelper: _output, opts: new NatsServerOptsBuilder() .UseTransport(TransportType.Tcp) .Trace() .UseJetStream() .Build()); - await using var connection = server.CreateClientConnection(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); + await using var connection = await server.CreateClientConnectionAsync(new NatsOpts { RequestTimeout = TimeSpan.FromSeconds(10) }); var jsFactory = new NatsJSContextFactory(); var jsContext = jsFactory.CreateContext(connection); var factory = new NatsObjContextFactory(); diff --git a/tests/NATS.Client.ObjectStore.Tests/ObjectStoreTest.cs b/tests/NATS.Client.ObjectStore.Tests/ObjectStoreTest.cs index aa0b686e0..61733b441 100644 --- a/tests/NATS.Client.ObjectStore.Tests/ObjectStoreTest.cs +++ b/tests/NATS.Client.ObjectStore.Tests/ObjectStoreTest.cs @@ -21,8 +21,8 @@ public async Task Create_delete_object_store() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); @@ -48,8 +48,8 @@ public async Task Put_chunks() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); @@ -130,8 +130,8 @@ public async Task Get_chunks() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); @@ -184,8 +184,8 @@ public async Task Delete_object() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10_000)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); @@ -222,8 +222,8 @@ public async Task Put_and_get_large_file() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -253,8 +253,8 @@ public async Task Add_link() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -300,8 +300,8 @@ public async Task Seal_and_get_status() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -339,8 +339,8 @@ public async Task List() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -397,8 +397,8 @@ public async Task List_empty_store_for_end_of_data() var cts = new CancellationTokenSource(timeout); var cancellationToken = cts.Token; - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -436,8 +436,8 @@ public async Task List_empty_store_for_end_of_data() [SkipIfNatsServer(versionEarlierThan: "2.10")] public async Task Compressed_storage() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -464,8 +464,8 @@ public async Task Compressed_storage() [Fact] public async Task Put_get_serialization_when_default_serializer_is_not_used() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(options: new NatsOpts + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(options: new NatsOpts { SerializerRegistry = NatsJsonSerializerRegistry.Default, }); @@ -502,8 +502,8 @@ public async Task Put_with_activity() using var activity = activitySource.StartActivity(ActivityKind.Client); ActivitySource.AddActivityListener(activityListener); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); @@ -534,8 +534,8 @@ public async Task Put_multiple_times_with_activity() using var activity = activitySource.StartActivity(ActivityKind.Client); ActivitySource.AddActivityListener(activityListener); - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var obj = new NatsObjContext(js); diff --git a/tests/NATS.Client.ObjectStore.Tests/WatcherTest.cs b/tests/NATS.Client.ObjectStore.Tests/WatcherTest.cs index ae14c4982..e523691ad 100644 --- a/tests/NATS.Client.ObjectStore.Tests/WatcherTest.cs +++ b/tests/NATS.Client.ObjectStore.Tests/WatcherTest.cs @@ -7,8 +7,8 @@ public class WatcherTest [Fact] public async Task Watcher_test() { - await using var server = NatsServer.StartJS(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartJSAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var js = new NatsJSContext(nats); var ob = new NatsObjContext(js); diff --git a/tests/NATS.Client.Perf/Program.cs b/tests/NATS.Client.Perf/Program.cs index 5efe47749..424b76db4 100644 --- a/tests/NATS.Client.Perf/Program.cs +++ b/tests/NATS.Client.Perf/Program.cs @@ -19,13 +19,13 @@ Console.WriteLine("NATS NET v2 Perf Tests"); Console.WriteLine(t); -await using var server = NatsServer.Start(); +await using var server = await NatsServer.StartAsync(); Console.WriteLine("\nRunning nats bench"); var natsBenchTotalMsgs = RunNatsBench(server.ClientUrl, t); -await using var nats1 = server.CreateClientConnection(NatsOpts.Default with { SubPendingChannelFullMode = BoundedChannelFullMode.Wait }, testLogger: false); -await using var nats2 = server.CreateClientConnection(testLogger: false); +await using var nats1 = await server.CreateClientConnectionAsync(NatsOpts.Default with { SubPendingChannelFullMode = BoundedChannelFullMode.Wait }, testLogger: false); +await using var nats2 = await server.CreateClientConnectionAsync(testLogger: false); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(60)); diff --git a/tests/NATS.Client.Platform.Windows.Tests/NATS.Client.Platform.Windows.Tests.csproj b/tests/NATS.Client.Platform.Windows.Tests/NATS.Client.Platform.Windows.Tests.csproj index 4f9119ff4..1abe6b03c 100644 --- a/tests/NATS.Client.Platform.Windows.Tests/NATS.Client.Platform.Windows.Tests.csproj +++ b/tests/NATS.Client.Platform.Windows.Tests/NATS.Client.Platform.Windows.Tests.csproj @@ -6,6 +6,7 @@ enable enable $(NoWarn);CS8002;VSTHRD200;VSTHRD111 + $(MSBuildProjectDirectory)\..\xunit.runsettings false true latest diff --git a/tests/NATS.Client.Services.Tests/NATS.Client.Services.Tests.csproj b/tests/NATS.Client.Services.Tests/NATS.Client.Services.Tests.csproj index e60a74b5e..dc95accae 100644 --- a/tests/NATS.Client.Services.Tests/NATS.Client.Services.Tests.csproj +++ b/tests/NATS.Client.Services.Tests/NATS.Client.Services.Tests.csproj @@ -4,7 +4,7 @@ net6.0;net8.0 enable enable - + $(MSBuildProjectDirectory)\..\xunit.runsettings false true diff --git a/tests/NATS.Client.Services.Tests/ServicesSerializationTest.cs b/tests/NATS.Client.Services.Tests/ServicesSerializationTest.cs index 022ecba5e..a97627021 100644 --- a/tests/NATS.Client.Services.Tests/ServicesSerializationTest.cs +++ b/tests/NATS.Client.Services.Tests/ServicesSerializationTest.cs @@ -17,10 +17,10 @@ public class ServicesSerializationTest [Fact] public async Task Service_info_and_stat_request_serialization() { - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); // Set serializer registry to use anything but a raw bytes (NatsMemory in this case) serializer - await using var nats = server.CreateClientConnection(new NatsOpts { SerializerRegistry = NatsJsonSerializerRegistry.Default }); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { SerializerRegistry = NatsJsonSerializerRegistry.Default }); var svc = new NatsSvcContext(nats); @@ -46,8 +46,8 @@ public async Task Service_info_and_stat_request_serialization() [Fact] public async Task Service_message_serialization() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(new NatsOpts { SerializerRegistry = NatsJsonSerializerRegistry.Default }); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(new NatsOpts { SerializerRegistry = NatsJsonSerializerRegistry.Default }); var svc = new NatsSvcContext(nats); diff --git a/tests/NATS.Client.Services.Tests/ServicesTests.cs b/tests/NATS.Client.Services.Tests/ServicesTests.cs index 63f3a0a1d..6f39a2809 100644 --- a/tests/NATS.Client.Services.Tests/ServicesTests.cs +++ b/tests/NATS.Client.Services.Tests/ServicesTests.cs @@ -18,8 +18,8 @@ public async Task Add_service_listeners_ping_info_and_stats() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); @@ -53,8 +53,8 @@ public async Task Add_end_point() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); @@ -135,8 +135,8 @@ public async Task Add_groups_metadata_and_stats() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); @@ -236,8 +236,8 @@ await s2.AddEndpointAsync( [Fact] public async Task Add_multiple_service_listeners_ping_info_and_stats() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); @@ -272,8 +272,8 @@ public async Task Pass_headers_to_request_and_in_response() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); @@ -330,8 +330,8 @@ public async Task Service_started_time() var cts = new CancellationTokenSource(TimeSpan.FromSeconds(200)); var cancellationToken = cts.Token; - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken); @@ -354,8 +354,8 @@ await s1.AddEndpointAsync( [Fact] public async Task Service_ids_unique() { - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var svc = new NatsSvcContext(nats); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(60)); diff --git a/tests/NATS.Client.Simplified.Tests/ClientTest.cs b/tests/NATS.Client.Simplified.Tests/ClientTest.cs index 39aad7465..6c898fd96 100644 --- a/tests/NATS.Client.Simplified.Tests/ClientTest.cs +++ b/tests/NATS.Client.Simplified.Tests/ClientTest.cs @@ -15,7 +15,7 @@ public class ClientTest [Fact] public async Task Client_works_with_all_expected_types_and_falls_back_to_JSON() { - await using var server = NatsServer.StartJS(); + await using var server = await NatsServer.StartJSAsync(); await using var client = new NatsClient(server.ClientUrl); CancellationTokenSource ctsTestTimeout = new(TimeSpan.FromSeconds(10)); @@ -127,7 +127,7 @@ public async Task Client_works_with_all_expected_types_and_falls_back_to_JSON() continue; } - await msg.ReplyAsync(new MyData(id, $"foo{id}"), cancellationToken: ctsTestTimeout.Token).ConfigureAwait(false); + await msg.ReplyAsync(new MyData(id, $"foo{id}"), cancellationToken: ctsTestTimeout.Token); id++; } }, diff --git a/tests/NATS.Client.Simplified.Tests/NATS.Client.Simplified.Tests.csproj b/tests/NATS.Client.Simplified.Tests/NATS.Client.Simplified.Tests.csproj index 607af6f91..3c8215e47 100644 --- a/tests/NATS.Client.Simplified.Tests/NATS.Client.Simplified.Tests.csproj +++ b/tests/NATS.Client.Simplified.Tests/NATS.Client.Simplified.Tests.csproj @@ -6,8 +6,9 @@ false $(NoWarn);CS8002 enable - $(MSBuildProjectDirectory)\test.runsettings + $(MSBuildProjectDirectory)\..\xunit.runsettings false + true diff --git a/tests/NATS.Client.Simplified.Tests/test.runsettings b/tests/NATS.Client.Simplified.Tests/test.runsettings deleted file mode 100644 index 27c41ad33..000000000 --- a/tests/NATS.Client.Simplified.Tests/test.runsettings +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1 - 300000 - - diff --git a/tests/NATS.Client.TestUtilities/NatsServer.cs b/tests/NATS.Client.TestUtilities/NatsServer.cs index 43bd0b2f5..a95bff993 100644 --- a/tests/NATS.Client.TestUtilities/NatsServer.cs +++ b/tests/NATS.Client.TestUtilities/NatsServer.cs @@ -4,7 +4,6 @@ using System.Text.RegularExpressions; using Cysharp.Diagnostics; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; namespace NATS.Client.Core.Tests; @@ -118,9 +117,9 @@ public int ConnectionPort public Action OnLog { get; set; } = _ => { }; - public static NatsServer StartJS() => StartJS(new NullOutputHelper(), TransportType.Tcp); + public static Task StartJSAsync() => StartJSAsync(new NullOutputHelper(), TransportType.Tcp); - public static NatsServer StartJSWithTrace(ITestOutputHelper outputHelper) => Start( + public static Task StartJSWithTraceAsync(ITestOutputHelper outputHelper) => StartAsync( outputHelper: outputHelper, opts: new NatsServerOptsBuilder() .UseTransport(TransportType.Tcp) @@ -128,29 +127,29 @@ public static NatsServer StartJSWithTrace(ITestOutputHelper outputHelper) => Sta .UseJetStream() .Build()); - public static NatsServer StartJS(ITestOutputHelper outputHelper, TransportType transportType) => Start( + public static Task StartJSAsync(ITestOutputHelper outputHelper, TransportType transportType) => StartAsync( outputHelper: outputHelper, opts: new NatsServerOptsBuilder() .UseTransport(transportType) .UseJetStream() .Build()); - public static NatsServer Start() => Start(new NullOutputHelper(), TransportType.Tcp); + public static async Task StartAsync() => await StartAsync(new NullOutputHelper(), TransportType.Tcp); public static bool SupportsTlsFirst() => new Version("2.10.4") <= Version; - public static NatsServer StartWithTrace(ITestOutputHelper outputHelper) - => Start( + public static Task StartWithTraceAsync(ITestOutputHelper outputHelper) + => StartAsync( outputHelper, new NatsServerOptsBuilder() .Trace() .UseTransport(TransportType.Tcp) .Build()); - public static NatsServer Start(ITestOutputHelper outputHelper, TransportType transportType) => - Start(outputHelper, new NatsServerOptsBuilder().UseTransport(transportType).Build()); + public static async Task StartAsync(ITestOutputHelper outputHelper, TransportType transportType) => + await StartAsync(outputHelper, new NatsServerOptsBuilder().UseTransport(transportType).Build()); - public static NatsServer Start(ITestOutputHelper outputHelper, NatsServerOpts opts, NatsOpts? clientOpts = default, bool useAuthInUrl = false) + public static async Task StartAsync(ITestOutputHelper outputHelper, NatsServerOpts opts, NatsOpts? clientOpts = default, bool useAuthInUrl = false) { NatsServer? server = null; NatsConnection? nats = null; @@ -159,26 +158,30 @@ public static NatsServer Start(ITestOutputHelper outputHelper, NatsServerOpts op try { server = new NatsServer(outputHelper, opts); - server.StartServerProcess(); - nats = server.CreateClientConnection(clientOpts ?? NatsOpts.Default, reTryCount: 3, useAuthInUrl: useAuthInUrl); -#pragma warning disable CA2012 + await server.StartServerProcessAsync(); + nats = await server.CreateClientConnectionAsync(clientOpts ?? NatsOpts.Default, reTryCount: 3, useAuthInUrl: useAuthInUrl); return server; } catch { - server?.DisposeAsync().AsTask().GetAwaiter().GetResult(); + if (server != null) + { + await server.DisposeAsync(); + } } finally { - nats?.DisposeAsync().AsTask().GetAwaiter().GetResult(); -#pragma warning restore CA2012 + if (nats != null) + { + await nats.DisposeAsync(); + } } } throw new Exception("Can't start nats-server and connect to it"); } - public void StartServerProcess() + public async Task StartServerProcessAsync() { _cancellationTokenSource = new CancellationTokenSource(); @@ -191,34 +194,35 @@ public void StartServerProcess() _processErr = EnumerateWithLogsAsync(stderr, _cancellationTokenSource.Token); // Check for start server - Task.Run(async () => + var loopTimeoutCts = new CancellationTokenSource(TimeSpan.FromSeconds(5)); + var loopCts = CancellationTokenSource.CreateLinkedTokenSource(_cancellationTokenSource.Token, loopTimeoutCts.Token); + using var client = new TcpClient(); + while (!_cancellationTokenSource.IsCancellationRequested) { - using var client = new TcpClient(); - while (!_cancellationTokenSource.IsCancellationRequested) + try { - try - { - await client.ConnectAsync("127.0.0.1", Opts.ServerPort, _cancellationTokenSource.Token); - if (client.Connected) - return; - } - catch - { - // ignore - } - - await Task.Delay(500, _cancellationTokenSource.Token); + var attemptTimeoutCts = new CancellationTokenSource(250); + var attemptCts = CancellationTokenSource.CreateLinkedTokenSource(loopCts.Token, attemptTimeoutCts.Token); + await client.ConnectAsync("127.0.0.1", Opts.ServerPort, attemptCts.Token); + if (client.Connected) + break; + } + catch + { + // ignore } - }).Wait(5000); // timeout + + await Task.Delay(250, loopCts.Token); + } if (_processOut.IsFaulted) { - _processOut.GetAwaiter().GetResult(); // throw exception + await _processOut; // throw exception } if (_processErr.IsFaulted) { - _processErr.GetAwaiter().GetResult(); // throw exception + await _processErr; // throw exception } _outputHelper.WriteLine("OK to Process Start, Port:" + Opts.ServerPort); @@ -245,7 +249,7 @@ public async ValueTask RestartAsync() // ignore } - StartServerProcess(); + await StartServerProcessAsync(); var t2 = ServerProcess?.StartTime; @@ -351,7 +355,7 @@ public async ValueTask DisposeAsync() return (client, proxy); } - public NatsConnection CreateClientConnection(NatsOpts? options = default, int reTryCount = 10, bool ignoreAuthorizationException = false, bool testLogger = true, bool useAuthInUrl = false) + public async Task CreateClientConnectionAsync(NatsOpts? options = default, int reTryCount = 10, bool ignoreAuthorizationException = false, bool testLogger = true, bool useAuthInUrl = false) { for (var i = 0; i < reTryCount; i++) { @@ -361,9 +365,7 @@ public NatsConnection CreateClientConnection(NatsOpts? options = default, int re try { -#pragma warning disable CA2012 - nats.PingAsync().AsTask().GetAwaiter().GetResult(); -#pragma warning restore CA2012 + await nats.PingAsync(); } catch (NatsException e) { @@ -478,85 +480,123 @@ public record LogMessage( public class NatsCluster : IAsyncDisposable { + private readonly NatsServerOpts _opts1; + + private readonly NatsServerOpts _opts2; + + private readonly NatsServerOpts _opts3; + private readonly ITestOutputHelper _outputHelper; + private readonly bool _useAuthInUrl; + + private NatsServer? _server1; + + private NatsServer? _server2; + + private NatsServer? _server3; + public NatsCluster(ITestOutputHelper outputHelper, TransportType transportType, Action? configure = default, bool useAuthInUrl = false) { _outputHelper = outputHelper; + _useAuthInUrl = useAuthInUrl; var builder1 = new NatsServerOptsBuilder() .UseTransport(transportType) .EnableClustering(); configure?.Invoke(1, builder1); - var opts1 = builder1.Build(); + _opts1 = builder1.Build(); var builder2 = new NatsServerOptsBuilder() .UseTransport(transportType) .EnableClustering(); configure?.Invoke(2, builder2); - var opts2 = builder2.Build(); + _opts2 = builder2.Build(); var builder3 = new NatsServerOptsBuilder() .UseTransport(transportType) .EnableClustering(); configure?.Invoke(3, builder3); - var opts3 = builder3.Build(); + _opts3 = builder3.Build(); // By querying the ports we set the values lazily on all the opts. - outputHelper.WriteLine($"opts1.ServerPort={opts1.ServerPort}"); - outputHelper.WriteLine($"opts1.ClusteringPort={opts1.ClusteringPort}"); - if (opts1.EnableWebSocket) + outputHelper.WriteLine($"opts1.ServerPort={_opts1.ServerPort}"); + outputHelper.WriteLine($"opts1.ClusteringPort={_opts1.ClusteringPort}"); + if (_opts1.EnableWebSocket) { - outputHelper.WriteLine($"opts1.WebSocketPort={opts1.WebSocketPort}"); + outputHelper.WriteLine($"opts1.WebSocketPort={_opts1.WebSocketPort}"); } - outputHelper.WriteLine($"opts2.ServerPort={opts2.ServerPort}"); - outputHelper.WriteLine($"opts2.ClusteringPort={opts2.ClusteringPort}"); - if (opts2.EnableWebSocket) + outputHelper.WriteLine($"opts2.ServerPort={_opts2.ServerPort}"); + outputHelper.WriteLine($"opts2.ClusteringPort={_opts2.ClusteringPort}"); + if (_opts2.EnableWebSocket) { - outputHelper.WriteLine($"opts2.WebSocketPort={opts2.WebSocketPort}"); + outputHelper.WriteLine($"opts2.WebSocketPort={_opts2.WebSocketPort}"); } - outputHelper.WriteLine($"opts3.ServerPort={opts3.ServerPort}"); - outputHelper.WriteLine($"opts3.ClusteringPort={opts3.ClusteringPort}"); - if (opts3.EnableWebSocket) + outputHelper.WriteLine($"opts3.ServerPort={_opts3.ServerPort}"); + outputHelper.WriteLine($"opts3.ClusteringPort={_opts3.ClusteringPort}"); + if (_opts3.EnableWebSocket) { - outputHelper.WriteLine($"opts3.WebSocketPort={opts3.WebSocketPort}"); + outputHelper.WriteLine($"opts3.WebSocketPort={_opts3.WebSocketPort}"); } - var routes = new[] { opts1, opts2, opts3 }; - + var routes = new[] { _opts1, _opts2, _opts3 }; foreach (var opt in routes) { opt.SetRoutes(routes); } + } - _outputHelper.WriteLine($"Starting server 1..."); - Server1 = NatsServer.Start(outputHelper, opts1, useAuthInUrl: useAuthInUrl); + public NatsServer Server1 => _server1 ?? throw new InvalidOperationException("call StartAsync"); - _outputHelper.WriteLine($"Starting server 2..."); - Server2 = NatsServer.Start(outputHelper, opts2, useAuthInUrl: useAuthInUrl); + public NatsServer Server2 => _server2 ?? throw new InvalidOperationException("call StartAsync"); - _outputHelper.WriteLine($"Starting server 3..."); - Server3 = NatsServer.Start(outputHelper, opts3, useAuthInUrl: useAuthInUrl); - } + public NatsServer Server3 => _server3 ?? throw new InvalidOperationException("call StartAsync"); - public NatsServer Server1 { get; } + public async Task StartAsync() + { + if (_server1 == null) + { + _outputHelper.WriteLine("Starting server 1..."); + _server1 = await NatsServer.StartAsync(_outputHelper, _opts1, useAuthInUrl: _useAuthInUrl); + } - public NatsServer Server2 { get; } + if (_server2 == null) + { + _outputHelper.WriteLine("Starting server 2..."); + _server2 = await NatsServer.StartAsync(_outputHelper, _opts2, useAuthInUrl: _useAuthInUrl); + } - public NatsServer Server3 { get; } + if (_server3 == null) + { + _outputHelper.WriteLine("Starting server 3..."); + _server3 = await NatsServer.StartAsync(_outputHelper, _opts3, useAuthInUrl: _useAuthInUrl); + } + } public async ValueTask DisposeAsync() { - _outputHelper.WriteLine($"Stopping server 1..."); - await Server1.DisposeAsync(); + if (_server1 != null) + { + _outputHelper.WriteLine("Stopping server 1..."); + await _server1.DisposeAsync(); + _server1 = null; + } - _outputHelper.WriteLine($"Stopping server 2..."); - await Server2.DisposeAsync(); + if (_server2 != null) + { + _outputHelper.WriteLine("Stopping server 2..."); + await _server2.DisposeAsync(); + _server2 = null; + } - _outputHelper.WriteLine($"Stopping server 3..."); - await Server3.DisposeAsync(); + if (_server3 != null) + { + _outputHelper.WriteLine("Stopping server 3..."); + await _server3.DisposeAsync(); + _server3 = null; + } } } diff --git a/tests/NATS.Client.TestUtilities/Utils.cs b/tests/NATS.Client.TestUtilities/Utils.cs index 117efb7a0..70b9133e3 100644 --- a/tests/NATS.Client.TestUtilities/Utils.cs +++ b/tests/NATS.Client.TestUtilities/Utils.cs @@ -140,7 +140,7 @@ await Retry.Until("service is found", async () => var count = 0; // NATS cli sends an empty JSON object '{}' as the request payload, so we do the same here - await foreach (var msg in nats.RequestManyAsync(subject, "{}", replySerializer: serializer, replyOpts: replyOpts, cancellationToken: ct).ConfigureAwait(false)) + await foreach (var msg in nats.RequestManyAsync(subject, "{}", replySerializer: serializer, replyOpts: replyOpts, cancellationToken: ct)) { if (++count == limit) break; @@ -150,7 +150,7 @@ await Retry.Until("service is found", async () => }); var count = 0; - await foreach (var msg in nats.RequestManyAsync(subject, "{}", replySerializer: serializer, replyOpts: replyOpts, cancellationToken: ct).ConfigureAwait(false)) + await foreach (var msg in nats.RequestManyAsync(subject, "{}", replySerializer: serializer, replyOpts: replyOpts, cancellationToken: ct)) { responses.Add(msg.Data!); if (++count == limit) diff --git a/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NATS.Extensions.Microsoft.DependencyInjection.Tests.csproj b/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NATS.Extensions.Microsoft.DependencyInjection.Tests.csproj index 9822666b9..6c2e780f8 100644 --- a/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NATS.Extensions.Microsoft.DependencyInjection.Tests.csproj +++ b/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NATS.Extensions.Microsoft.DependencyInjection.Tests.csproj @@ -3,9 +3,11 @@ net6.0;net8.0 enable - false $(NoWarn);CS8002 enable + $(MSBuildProjectDirectory)\..\xunit.runsettings + false + true diff --git a/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NatsHostingExtensionsTests.cs b/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NatsHostingExtensionsTests.cs index cb76c4f2c..aba68e941 100644 --- a/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NatsHostingExtensionsTests.cs +++ b/tests/NATS.Extensions.Microsoft.DependencyInjection.Tests/NatsHostingExtensionsTests.cs @@ -41,7 +41,7 @@ public void AddNatsClient_RegistersNatsConnectionAsTransient_WhenPoolSizeIsGreat [Fact] public async Task AddNatsClient_WithJsonSerializer() { - await using var server = NatsServer.Start(); + await using var server = await NatsServer.StartAsync(); var services = new ServiceCollection(); services.AddSingleton(); diff --git a/tests/NATS.Net.OpenTelemetry.Tests/NATS.Net.OpenTelemetry.Tests.csproj b/tests/NATS.Net.OpenTelemetry.Tests/NATS.Net.OpenTelemetry.Tests.csproj index 99a58117f..a30871b4c 100644 --- a/tests/NATS.Net.OpenTelemetry.Tests/NATS.Net.OpenTelemetry.Tests.csproj +++ b/tests/NATS.Net.OpenTelemetry.Tests/NATS.Net.OpenTelemetry.Tests.csproj @@ -2,11 +2,11 @@ net6.0;net8.0 enable - false $(NoWarn);CS8002 enable - $(MSBuildProjectDirectory)\test.runsettings + $(MSBuildProjectDirectory)\..\xunit.runsettings false + true diff --git a/tests/NATS.Net.OpenTelemetry.Tests/OpenTelemetryTest.cs b/tests/NATS.Net.OpenTelemetry.Tests/OpenTelemetryTest.cs index 4aa0986d2..5b6241976 100644 --- a/tests/NATS.Net.OpenTelemetry.Tests/OpenTelemetryTest.cs +++ b/tests/NATS.Net.OpenTelemetry.Tests/OpenTelemetryTest.cs @@ -13,8 +13,8 @@ public async Task Publish_subscribe_activities() { var activities = new List(); using var activityListener = StartActivityListener(activities); - await using var server = NatsServer.Start(); - await using var nats = server.CreateClientConnection(); + await using var server = await NatsServer.StartAsync(); + await using var nats = await server.CreateClientConnectionAsync(); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); diff --git a/tests/NATS.Net.OpenTelemetry.Tests/test.runsettings b/tests/NATS.Net.OpenTelemetry.Tests/test.runsettings deleted file mode 100644 index 27c41ad33..000000000 --- a/tests/NATS.Net.OpenTelemetry.Tests/test.runsettings +++ /dev/null @@ -1,7 +0,0 @@ - - - - 1 - 300000 - - diff --git a/tests/NATS.Client.Core.Tests/test.runsettings b/tests/xunit.runsettings similarity index 68% rename from tests/NATS.Client.Core.Tests/test.runsettings rename to tests/xunit.runsettings index 27c41ad33..d9dcca60a 100644 --- a/tests/NATS.Client.Core.Tests/test.runsettings +++ b/tests/xunit.runsettings @@ -1,7 +1,9 @@  - 1 300000 + + 4.0x +