public void EncodeHeaders_WithMultipleValuesForSameHeader_ShouldEncodeEachOneCorrectly()
{
string hvalue = "Some Ascii header";
_headers.Add("X-Custom", hvalue);
_headers.Add("X-Custom", CustomUnicodeHeaderValue);
_message.EncodeHeaders(_headers, false);
string[] output = _headers.GetValues("X-Custom");
Assert.Equal(2, output.Length);
foreach (string s in output)
{
Assert.False(ContainsNonAscii(s), s);
}
Assert.Equal(Encoding.UTF8, _message.HeadersEncoding);
// Allow Unicode
_headers.Clear();
_headers.Add("X-Custom", hvalue);
_headers.Add("X-Custom", CustomUnicodeHeaderValue);
_message.EncodeHeaders(_headers, true);
output = _headers.GetValues("X-Custom");
Assert.Equal(2, output.Length);
Assert.False(ContainsNonAscii(output[0]), output[0]);
Assert.True(ContainsNonAscii(output[1]), output[1]);
}