public void SelectCharacterEncoding_ReturnsBestEncoding(string bodyEncoding, string[] supportedEncodings, string expectedEncoding) { // Arrange MockMediaTypeFormatter formatter = new MockMediaTypeFormatter { CallBase = true }; foreach (string supportedEncoding in supportedEncodings) { formatter.SupportedEncodings.Add(Encoding.GetEncoding(supportedEncoding)); } HttpContentHeaders contentHeaders = null; if (bodyEncoding != null) { Encoding bodyEnc = Encoding.GetEncoding(bodyEncoding); HttpContent content = new StringContent("Hello World", bodyEnc, "text/plain"); contentHeaders = content.Headers; } // Act Encoding actualEncoding = formatter.SelectCharacterEncoding(contentHeaders); // Assert Encoding expectedEnc = expectedEncoding != null?Encoding.GetEncoding(expectedEncoding) : null; Assert.Equal(expectedEnc, actualEncoding); }
public void SelectCharacterEncoding_ThrowsIfNoSupportedEncodings() { // Arrange MockMediaTypeFormatter formatter = new MockMediaTypeFormatter { CallBase = true }; HttpContent content = new StringContent("Hello World", Encoding.UTF8, "text/plain"); // Act Assert.Throws<InvalidOperationException>(() => formatter.SelectCharacterEncoding(content.Headers)); }