public static void Main(string[] args)
 {
     var config = new CurrentFolderConfiguration();
     var converter = new Rot13Converter();
     converter.ExecuteOn(
       new LazyFileReader(args[0], config),
       new MultiOutputCharStream(
         new FileWriter(args[1], config),
         new ConsoleWriter()
       )
     );
     Console.WriteLine();
 }
        public void TransformCharStreamIntoRot13edCharStream()
        {
            var inputStream = new Mock<InputCharStream>();
            inputStream
                .Setup( stream => stream.HasChars() )
                .ReturnsInOrder( true, true, false );
            inputStream
                .Setup( stream => stream.GetChar() )
                .ReturnsInOrder( 'A', 'c' );

            var outputStream = new Mock<OutputCharStream>();
            var converter = new Rot13Converter();

            converter.ExecuteOn( inputStream.Object, outputStream.Object );

            outputStream.Verify( stream => stream.PutChar('N'), Times.Once() );
            outputStream.Verify( stream => stream.PutChar('p'), Times.Once() );
            outputStream.Verify( stream => stream.PutChar(It.IsAny<char>()), Times.Exactly(2) );
        }