public async Task TestThatProcessIsRestarted() { ProcessStub process = new ProcessStub("exePath", "exeArgs"); SelfRestartingProcess selfRestartingProcess = new SelfRestartingProcess(process, 1); await selfRestartingProcess.Start(); Assert.IsTrue(process.IsRunning); process.RaiseExitedEvent(); Assert.IsTrue(await SpinWaitForRestart(selfRestartingProcess, 1)); Assert.IsTrue(process.IsRunning); }
public async Task TestThatExitedIsRaisedIfProcessFailsToRestart() { ProcessStub process = new ProcessStub("exePath", "exeArgs"); SelfRestartingProcess selfRestartingProcess = new SelfRestartingProcess(process, 1); bool exitedFired = false; selfRestartingProcess.Exited += (sender, args) => { exitedFired = true; }; await selfRestartingProcess.Start(); Assert.IsTrue(process.IsRunning); process.ShouldStart = false; process.RaiseExitedEvent(); Assert.IsTrue(await SpinWaitFor(() => exitedFired)); Assert.IsFalse(process.IsRunning); Assert.IsTrue(exitedFired); }