public void EncodeHeaders_UserSettableHeaderDoesntAllowUnicode_ShouldEncode()
{
// We should have rejected such a value in the past, but instead we just encode it.
// Maintain this behavior for app-compat.
_headers.Add("Message-ID", CustomUnicodeHeaderValue);
_message.EncodeHeaders(_headers, false);
string encodedHeader = _headers.Get("Message-ID");
Assert.True(encodedHeader.StartsWith("="), encodedHeader);
Assert.True(encodedHeader.EndsWith("="), encodedHeader);
Assert.False(ContainsNonAscii(encodedHeader), encodedHeader);
Assert.Equal(Encoding.UTF8, _message.HeadersEncoding);
// Allow Unicode, but encode because this specific header doesn't allow Unicode.
_headers.Clear();
_headers.Add("Message-ID", CustomUnicodeHeaderValue);
_message.EncodeHeaders(_headers, true);
encodedHeader = _headers.Get("Message-ID");
Assert.True(encodedHeader.StartsWith("="), encodedHeader);
Assert.True(encodedHeader.EndsWith("="), encodedHeader);
Assert.False(ContainsNonAscii(encodedHeader), encodedHeader);
}