public async Task EnsureStarted_KillProcess_EnsureStarted() { var session = new RSession(0, _brokerClient, new AsyncReaderWriterLock().CreateExclusiveReaderLock(), () => { }); session.HostStarted.Should().NotBeCompleted(); session.IsHostRunning.Should().BeFalse(); await session.EnsureHostStartedAsync(new RHostStartupInfo { Name = _testMethod.Name }, null, 50000); session.HostStarted.Should().BeRanToCompletion(); session.IsHostRunning.Should().BeTrue(); var sessionDisconnectedTask = EventTaskSources.IRSession.Disconnected.Create(session); var processId = await GetRSessionProcessId(session); Process.GetProcessById(processId).Kill(); await sessionDisconnectedTask; session.IsHostRunning.Should().BeFalse(); await session.EnsureHostStartedAsync(new RHostStartupInfo { Name = _testMethod.Name }, null, 50000); session.HostStarted.Should().BeRanToCompletion(); session.IsHostRunning.Should().BeTrue(); }