public void BindModel_WithNonTextXmlContentType_ThrowsException() { // arrange var binder = new XmlModelBinder(); var controllerContext = new ControllerContext(); var httpContext = new Mock <HttpContextBase>(); Stream stream = @"<?xml version=""1.0""?> <root><node /></root>".ToStream(); httpContext.Setup(h => h.Request.InputStream).Returns(stream); httpContext.Setup(h => h.Request.ContentType).Returns("text/html"); controllerContext.HttpContext = httpContext.Object; var bindingContext = new ModelBindingContext(); // act, assert UnitTestHelper.AssertThrows <InvalidOperationException>(() => binder.BindModel(controllerContext, bindingContext)); }
public void BindModel_WithXmlInInputStream_ReturnsXmlDoc() { // arrange var binder = new XmlModelBinder(); var controllerContext = new ControllerContext(); var httpContext = new Mock <HttpContextBase>(); Stream stream = @"<?xml version=""1.0""?> <root><node>test</node></root>".ToStream(); httpContext.Setup(h => h.Request.InputStream).Returns(stream); httpContext.Setup(h => h.Request.ContentType).Returns("text/xml"); controllerContext.HttpContext = httpContext.Object; var bindingContext = new ModelBindingContext(); // act var doc = binder.BindModel(controllerContext, bindingContext) as XmlDocument; // assert Assert.IsNotNull(doc); Assert.AreEqual("test", doc.SelectSingleNode("//node").InnerText); }