public void WhenInputFilesAreStrings() { var file1 = @"InputFile_1.data"; var baseDirectory = AppDomain.CurrentDomain.BaseDirectory; var binDirectory = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory).Parent.Parent.FullName; var inputFile1 = Path.Combine(binDirectory, file1); var file2 = @"InputFile_2.data"; var inputFile2 = Path.Combine(binDirectory, file2); var file3 = @"Output.data"; var outputFile = Path.Combine(binDirectory, file3); using (var file = new StreamWriter(inputFile1)) { file.WriteLine("A"); file.WriteLine("C"); file.WriteLine("E"); file.WriteLine("G"); file.WriteLine("I"); file.WriteLine("K"); } using (var file = new StreamWriter(inputFile2)) { file.WriteLine("B"); file.WriteLine("D"); file.WriteLine("F"); file.WriteLine("H"); file.WriteLine("J"); file.WriteLine("L"); file.WriteLine("M"); file.WriteLine("N"); } var fileProcessor = new FileMergeProcessor(inputFile1, inputFile2, outputFile); fileProcessor.Process(); using (var streamReader = new StreamReader(outputFile)) { var iterator = streamReader.ToIterator(); byte i = 65; while (iterator.MoveNext()) { Assert.True(Encoding.ASCII.GetString(new byte[] { i++ }) == iterator.Current); } } }