public void End_Cleans_Up()
        {
            var driver = new FakeDriver();

            Application.Init(driver, new FakeMainLoop(() => FakeConsole.ReadKey(true)));
            driver.Init(() => { });

            FakeConsole.ForegroundColor = ConsoleColor.Red;
            Assert.Equal(ConsoleColor.Red, Console.ForegroundColor);

            FakeConsole.BackgroundColor = ConsoleColor.Green;
            Assert.Equal(ConsoleColor.Green, Console.BackgroundColor);
            driver.Move(2, 3);
            Assert.Equal(2, Console.CursorLeft);
            Assert.Equal(3, Console.CursorTop);

            driver.End();
            Assert.Equal(0, Console.CursorLeft);
            Assert.Equal(0, Console.CursorTop);
            Assert.Equal(ConsoleColor.Gray, Console.ForegroundColor);
            Assert.Equal(ConsoleColor.Black, Console.BackgroundColor);

            // Shutdown must be called to safely clean up Application if Init has been called
            Application.Shutdown();
        }