public void SelectCharacterEncoding_ThrowsInvalidOperationException_IfItDoesNotHaveAValidEncoding() { // Arrange var formatter = new TestFormatter(); var context = new InputFormatterContext( new DefaultHttpContext(), "something", new ModelStateDictionary(), new EmptyModelMetadataProvider().GetMetadataForType(typeof(object)), (stream, encoding) => new StreamReader(stream, encoding)); context.HttpContext.Request.ContentLength = 1; // Act & Assert Assert.Throws <InvalidOperationException>(() => formatter.TestSelectCharacterEncoding(context)); }
public void SelectCharacterEncoding_ReturnsNull_IfItCanNotUnderstandContentTypeEncoding(string charset) { // Arrange var formatter = new TestFormatter(); formatter.SupportedEncodings.Add(Encoding.UTF32); var context = new InputFormatterContext( new DefaultHttpContext(), "something", new ModelStateDictionary(), new EmptyModelMetadataProvider().GetMetadataForType(typeof(object)), (stream, encoding) => new StreamReader(stream, encoding)); context.HttpContext.Request.ContentType = "application/json;charset=" + charset; // Act var result = formatter.TestSelectCharacterEncoding(context); // Assert Assert.Null(result); }
public void SelectCharacterEncoding_ReturnsAsciiEncoding_IfContentTypeIsAnAlias(string charset) { // Arrange var formatter = new TestFormatter(); formatter.SupportedEncodings.Add(Encoding.UTF32); formatter.SupportedEncodings.Add(Encoding.ASCII); var context = new InputFormatterContext( new DefaultHttpContext(), "something", new ModelStateDictionary(), new EmptyModelMetadataProvider().GetMetadataForType(typeof(object)), (stream, encoding) => new StreamReader(stream, encoding)); context.HttpContext.Request.ContentType = "application/json;charset=\"" + charset + "\""; // Act var result = formatter.TestSelectCharacterEncoding(context); // Assert Assert.Equal(Encoding.ASCII, result); }
public void SelectCharacterEncoding_ReturnsFirstEncoding_IfContentTypeIsNotSpecifiedOrDoesNotHaveEncoding(string contentType) { // Arrange var formatter = new TestFormatter(); formatter.SupportedEncodings.Add(Encoding.UTF8); formatter.SupportedEncodings.Add(Encoding.UTF32); var context = new InputFormatterContext( new DefaultHttpContext(), "something", new ModelStateDictionary(), new EmptyModelMetadataProvider().GetMetadataForType(typeof(object)), (stream, encoding) => new StreamReader(stream, encoding)); context.HttpContext.Request.ContentType = contentType; // Act var result = formatter.TestSelectCharacterEncoding(context); // Assert Assert.Equal(Encoding.UTF8, result); }