public static void TestEncodeStream(string input, string encodingName, bool padLeadingDots) { Encoding encoding = encodingName == "ASCII" ? Encoding.ASCII : encodingName == "UTF8" ? Encoding.UTF8 : Encoding.Default; string expectedOutput = input; if (padLeadingDots && input.Length > 0 && input[0] == '.') { expectedOutput = "." + expectedOutput; } var outputStream = new MemoryStream(); var testStream = new EightBitStream(outputStream, padLeadingDots); byte[] bytesToWrite = encoding.GetBytes(input); testStream.Write(bytesToWrite, 0, bytesToWrite.Length); outputStream.Seek(0, SeekOrigin.Begin); byte[] bytesRead = new byte[encoding.GetByteCount(expectedOutput) * 2]; int bytesReadCount = outputStream.Read(bytesRead, 0, bytesRead.Length); Assert.Equal(expectedOutput, encoding.GetString(bytesRead, 0, bytesReadCount)); }