public void UnregisterFromProcessMonitor_Succeeds()
        {
            Process process = Process.GetCurrentProcess();

            _rpcWorkerProcess.Process = process;

            _hostProcessMonitorMock.Setup(p => p.RegisterChildProcess(process));
            _hostProcessMonitorMock.Setup(p => p.UnregisterChildProcess(process));

            // not yet registered so noop
            _rpcWorkerProcess.UnregisterFromProcessMonitor();
            _hostProcessMonitorMock.Verify(p => p.UnregisterChildProcess(process), Times.Never);

            _rpcWorkerProcess.RegisterWithProcessMonitor();
            _rpcWorkerProcess.UnregisterFromProcessMonitor();
            _hostProcessMonitorMock.Verify(p => p.UnregisterChildProcess(process), Times.Once);

            // attempting to unregister again is a noop
            _rpcWorkerProcess.UnregisterFromProcessMonitor();
            _hostProcessMonitorMock.Verify(p => p.UnregisterChildProcess(process), Times.Once);
        }