diff --git a/src/Raven.Client/Http/RequestExecutor.cs b/src/Raven.Client/Http/RequestExecutor.cs index 9f64e37df13..068f6438b59 100644 --- a/src/Raven.Client/Http/RequestExecutor.cs +++ b/src/Raven.Client/Http/RequestExecutor.cs @@ -485,8 +485,7 @@ public virtual async Task UpdateTopologyAsync(UpdateTopologyParameters par using (ContextPool.AllocateOperationContext(out JsonOperationContext context)) { var command = new GetDatabaseTopologyCommand(parameters.DebugTag, Conventions.SendApplicationIdentifier ? parameters.ApplicationIdentifier : null); - if (ForTestingPurposes != null && ForTestingPurposes.timeout != TimeSpan.Zero) - command.Timeout = ForTestingPurposes.timeout; + ForTestingPurposes?.SetCommandTimeout?.Invoke(command); if (DefaultTimeout.HasValue && DefaultTimeout.Value > command.Timeout) command.Timeout = DefaultTimeout.Value; @@ -2373,7 +2372,7 @@ internal TestingStuff(RequestExecutor requestExecutor) internal ConcurrentDictionary> FailedNodesTimers => _requestExecutor._failedNodesTimers; internal (int Index, ServerNode Node) PreferredNode => _requestExecutor._nodeSelector.GetPreferredNode(); internal Action DelayRequest; - internal TimeSpan timeout; + internal Action SetCommandTimeout; } } } diff --git a/test/SlowTests/Issues/RavenDB_19900.cs b/test/SlowTests/Issues/RavenDB_19900.cs index 635b2ad131d..81de1cee3d2 100644 --- a/test/SlowTests/Issues/RavenDB_19900.cs +++ b/test/SlowTests/Issues/RavenDB_19900.cs @@ -3,13 +3,13 @@ using Xunit.Abstractions; using System; using System.Threading; +using FastTests; using Raven.Client.Http; -using Tests.Infrastructure; namespace SlowTests.Issues { - public class RavenDB_19900 : ClusterTestBase + public class RavenDB_19900 : RavenTestBase { public RavenDB_19900(ITestOutputHelper output) : base(output) { @@ -30,7 +30,10 @@ public async Task UpdateTopologyTimeoutBehaviourShouldBeAccordingToConfiguration { // delaying response should result in UpdateTopology timeout executor.ForTestingPurposesOnly().DelayRequest = () => { Thread.Sleep(delay); }; - executor.ForTestingPurposesOnly().timeout = customCommandTimeout; + executor.ForTestingPurposesOnly().SetCommandTimeout = (command) => + { + command.Timeout = customCommandTimeout; + }; var e = await Assert.ThrowsAsync(async () => await UpdateTopology()); Assert.Contains("failed with timeout after 00:00:01", e.ToString());