public void ConsoleManager_Constructor_CreatesConsoleManager()
        {
            // Arrange
              var processFactory = new MockProcessFactory();

              // Act
              var cm = new ConsoleManager(processFactory);

              // Assert
              Assert.IsInstanceOfType(cm, typeof(ConsoleManager));
        }
        public void ConsoleManager_InvokeCommand_AddsHistory()
        {
            // Arrange
              var processFactory = new MockProcessFactory
              {
            MockCreateProcess_StartInfo = startInfo => new MockProcessWrapper()
              };

              var cm = new ConsoleManager(processFactory);

              // Act
              cm.InvokeCommand("hello", "world");

              // Assert
              Assert.AreEqual(cm.History.ElementAt(0), "hello world");
        }
        public void ConsoleManager_InvokeCommand_CallsProcessStart()
        {
            var _processStartCalled = false;

              // Arrange
              var processFactory = new MockProcessFactory
              {
            MockCreateProcess_StartInfo = startInfo =>
            {
              return new MockProcessWrapper
              {
            MockStart = () => _processStartCalled = true
              };
            }
              };

              var cm = new ConsoleManager(processFactory);

              // Act
              cm.InvokeCommand("hello", "world");

              // Assert
              Assert.IsTrue(_processStartCalled);
        }