diff --git a/src/Tgstation.Server.Host/Core/SetupWizard.cs b/src/Tgstation.Server.Host/Core/SetupWizard.cs
index 040bee0bc8..83b6456fe3 100644
--- a/src/Tgstation.Server.Host/Core/SetupWizard.cs
+++ b/src/Tgstation.Server.Host/Core/SetupWizard.cs
@@ -50,6 +50,11 @@ namespace Tgstation.Server.Host.Core
///
readonly IPlatformIdentifier platformIdentifier;
+ ///
+ /// The for the
+ ///
+ readonly IAsyncDelayer asyncDelayer;
+
///
/// The for the
///
@@ -69,9 +74,10 @@ namespace Tgstation.Server.Host.Core
/// The value of
/// The value of
/// The value of
+ /// The value of
/// The value of
/// The containing the value of
- public SetupWizard(IIOManager ioManager, IConsole console, IHostingEnvironment hostingEnvironment, IApplication application, IDBConnectionFactory dbConnectionFactory, IPlatformIdentifier platformIdentifier, ILogger logger, IOptions generalConfigurationOptions)
+ public SetupWizard(IIOManager ioManager, IConsole console, IHostingEnvironment hostingEnvironment, IApplication application, IDBConnectionFactory dbConnectionFactory, IPlatformIdentifier platformIdentifier, IAsyncDelayer asyncDelayer, ILogger logger, IOptions generalConfigurationOptions)
{
this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
this.console = console ?? throw new ArgumentNullException(nameof(console));
@@ -79,6 +85,7 @@ namespace Tgstation.Server.Host.Core
this.application = application ?? throw new ArgumentNullException(nameof(application));
this.dbConnectionFactory = dbConnectionFactory ?? throw new ArgumentNullException(nameof(dbConnectionFactory));
this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
+ this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
}
@@ -501,7 +508,7 @@ namespace Tgstation.Server.Host.Core
await console.WriteAsync("Waiting for configuration changes to reload...", true, cancellationToken).ConfigureAwait(false);
//we need to wait for the configuration's file system watcher to read and reload the changes
- await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken).ConfigureAwait(false);
+ await asyncDelayer.Delay(TimeSpan.FromSeconds(5), cancellationToken).ConfigureAwait(false);
}
///
@@ -584,7 +591,7 @@ namespace Tgstation.Server.Host.Core
}
//flush the logs to prevent console conflicts
- await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken).ConfigureAwait(false);
+ await asyncDelayer.Delay(TimeSpan.FromSeconds(1), cancellationToken).ConfigureAwait(false);
await RunWizard(userConfigFileName, cancellationToken).ConfigureAwait(false);
return true;
diff --git a/tests/Tgstation.Server.Host.Tests/Core/TestSetupWizard.cs b/tests/Tgstation.Server.Host.Tests/Core/TestSetupWizard.cs
index 2ef2576d7b..7824a93c27 100644
--- a/tests/Tgstation.Server.Host.Tests/Core/TestSetupWizard.cs
+++ b/tests/Tgstation.Server.Host.Tests/Core/TestSetupWizard.cs
@@ -22,21 +22,23 @@ namespace Tgstation.Server.Host.Core.Tests
[TestMethod]
public void TestConstructionThrows()
{
- Assert.ThrowsException(() => new SetupWizard(null, null, null, null, null, null, null, null));
+ Assert.ThrowsException(() => new SetupWizard(null, null, null, null, null, null, null, null, null));
var mockIOManager = new Mock();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, null, null, null, null, null, null, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, null, null, null, null, null, null, null, null));
var mockConsole = new Mock();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, null, null, null, null, null, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, null, null, null, null, null, null, null));
var mockHostingEnvironment = new Mock();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, null, null, null, null, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, null, null, null, null, null, null));
var mockApplication = new Mock();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, null, null, null, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, null, null, null, null, null));
var mockDBConnectionFactory = new Mock();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, null, null, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, null, null, null, null));
var mockPlatformIdentifier = new Mock();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, null, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, null, null, null));
+ var mockAsyncDelayer = new Mock();
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, mockAsyncDelayer.Object, null, null));
var mockLogger = new Mock>();
- Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, mockLogger.Object, null));
+ Assert.ThrowsException(() => new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, mockAsyncDelayer.Object, mockLogger.Object, null));
}
[TestMethod]
@@ -50,6 +52,7 @@ namespace Tgstation.Server.Host.Core.Tests
var mockLogger = new Mock>();
var mockGeneralConfigurationOptions = new Mock>();
var mockPlatformIdentifier = new Mock();
+ var mockAsyncDelayer = new Mock();
var testGeneralConfig = new GeneralConfiguration
{
@@ -57,9 +60,10 @@ namespace Tgstation.Server.Host.Core.Tests
};
mockGeneralConfigurationOptions.SetupGet(x => x.Value).Returns(testGeneralConfig).Verifiable();
- var wizard = new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, mockLogger.Object, mockGeneralConfigurationOptions.Object);
+ var wizard = new SetupWizard(mockIOManager.Object, mockConsole.Object, mockHostingEnvironment.Object, mockApplication.Object, mockDBConnectionFactory.Object, mockPlatformIdentifier.Object, mockAsyncDelayer.Object, mockLogger.Object, mockGeneralConfigurationOptions.Object);
mockPlatformIdentifier.SetupGet(x => x.IsWindows).Returns(true).Verifiable();
+ mockAsyncDelayer.Setup(x => x.Delay(It.IsAny(), It.IsAny())).Returns(Task.CompletedTask).Verifiable();
Assert.IsFalse(await wizard.CheckRunWizard(default).ConfigureAwait(false));
@@ -230,6 +234,7 @@ namespace Tgstation.Server.Host.Core.Tests
mockDBConnectionFactory.VerifyAll();
mockApplication.VerifyAll();
mockPlatformIdentifier.VerifyAll();
+ mockAsyncDelayer.VerifyAll();
}
}
}