How to Fully Cover .NET C# Console Application With Unit Tests

How could I test a Console application when the input is passed by key strokes and the output is presented on a screen?!! Know the What? and How? to fully cover your Console Application using TDD, DI, and IoC.