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);
}