public void OpensReaderWithDefaults() { EncodedResource r = new EncodedResource(new StringResource("test")); StreamReader reader = (StreamReader)r.OpenReader(); Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName); Assert.AreEqual("test", reader.ReadToEnd()); }
public void OpensReaderWithoutAutoDetectEncoding() { string expected = "test"; Encoding utf32 = new UTF32Encoding(false, true); byte[] resourceData = GetBytes(expected, utf32); EncodedResource r = new EncodedResource(new InputStreamResource(new MemoryStream(resourceData), "description"), Encoding.UTF8, false); StreamReader reader = (StreamReader)r.OpenReader(); Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName); string actual = reader.ReadToEnd(); // Assert.AreEqual("\uFFFD\uFFFD\0\0t\0\0\0e\0\0\0s\0\0\0t\0\0\0", actual); Assert.AreEqual(Encoding.UTF8.GetString(resourceData), actual); Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName); }
public void OpensReaderWithAutoDetectEncoding() { string expected = "test"; Encoding utf32 = new UTF32Encoding(false, true); byte[] resourceData = GetBytes(expected, utf32); resourceData = (byte[])ArrayUtils.Concat(utf32.GetPreamble(), resourceData); EncodedResource r = new EncodedResource(new InputStreamResource(new MemoryStream(resourceData), "description"), Encoding.UTF8, true); StreamReader reader = (StreamReader)r.OpenReader(); Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName); string actual = reader.ReadToEnd(); Assert.AreEqual("\uFEFF" + expected, actual); // interestingly the line below is *not* true! // Assert.AreEqual(utf32.GetString(resourceData), actual); Assert.AreEqual(utf32, reader.CurrentEncoding); }