diff --git a/tests/Tgstation.Server.Host.Service.Tests/TestServerService.cs b/tests/Tgstation.Server.Host.Service.Tests/TestServerService.cs index 54dc719a0b..7c5ae3bed2 100644 --- a/tests/Tgstation.Server.Host.Service.Tests/TestServerService.cs +++ b/tests/Tgstation.Server.Host.Service.Tests/TestServerService.cs @@ -34,19 +34,40 @@ namespace Tgstation.Server.Host.Service.Tests var mockWatchdog = new Mock(); var args = Array.Empty(); - CancellationToken cancellationToken; - mockWatchdog.Setup(x => x.RunAsync(false, It.IsNotNull(), It.IsAny())).Callback((bool x, string[] _, CancellationToken token) => cancellationToken = token).Returns(Task.FromResult(true)).Verifiable(); + CancellationToken cancellationToken = default; + Task signalCheckerTask = null; + var childStarted = false; + ISignalChecker signalChecker = null; + + mockWatchdog.Setup(x => x.RunAsync(false, It.IsNotNull(), It.IsAny())).Callback((bool x, string[] _, CancellationToken token) => + { + cancellationToken = token; + signalCheckerTask = signalChecker.CheckSignals(additionalArgs => + { + childStarted = true; + return (123, Task.CompletedTask); + }, cancellationToken); + }).Returns(Task.FromResult(true)).Verifiable(); var mockWatchdogFactory = new Mock(); - mockWatchdogFactory.Setup(x => x.CreateWatchdog(It.IsNotNull(), It.IsNotNull())).Returns(mockWatchdog.Object).Verifiable(); + + mockWatchdogFactory.Setup(x => x.CreateWatchdog(It.IsNotNull(), It.IsNotNull())) + .Callback((s, loggerFactory) => + { + signalChecker = s; + }) + .Returns(mockWatchdog.Object) + .Verifiable(); using (var service = new ServerService(mockWatchdogFactory.Object, Array.Empty(), default)) { onStart.Invoke(service, new object[] { args }); + Assert.IsTrue(childStarted); onStop.Invoke(service, Array.Empty()); mockWatchdog.VerifyAll(); } mockWatchdogFactory.VerifyAll(); + Assert.IsTrue(signalCheckerTask.IsCompleted); } } }