public void IsAlive()
        {
            // I don't love that we have to change the kernel manager's status, but the underlying checks
            // for the client rely on that status being set appropriately.

            KernelManagerMock.SetupGet(x => x.IsAlive).Returns(false);
            KernelManagerMock.SetupGet(x => x.HasKernel).Returns(false);
            var client = new KernelClient(KernelManagerMock.Object, ChannelFactoryMock.Object, false);

            Assert.IsFalse(client.IsAlive);

            KernelManagerMock.SetupGet(x => x.IsAlive).Returns(true);
            KernelManagerMock.SetupGet(x => x.HasKernel).Returns(true);
            client.StartChannels();
            Assert.IsTrue(client.IsAlive);

            KernelManagerMock.SetupGet(x => x.IsAlive).Returns(false);
            KernelManagerMock.SetupGet(x => x.HasKernel).Returns(false);
            client.StopChannels();
            Assert.IsFalse(client.IsAlive);
        }