ExecuteResult() 공개 메소드

Serialises the object that was passed into the constructor to XML and writes the corresponding XML to the result stream.
public ExecuteResult ( ControllerContext, context ) : void
context ControllerContext, The controller context for the current request.
리턴 void
예제 #1
0
        public void Should_set_content_type()
        {
            var result = new XmlResult(new[] { 2, 3, 4 });

            result.ExecuteResult(_controllerContext);
            Assert.AreEqual("text/xml", _controllerContext.HttpContext.Response.ContentType);
        }
예제 #2
0
 public void NullDataShouldNotThrowError()
 {
     var controllerContext = new ControllerContext { HttpContext = _httpContext.Object };
     var result = new XmlResult(null);
     result.ExecuteResult(controllerContext);
     // Passes if no exception is thrown
 }
        public void XmlOverrides_can_change_root_node()
        {
            var people = new System.Collections.Generic.List <Person>()
            {
                new Person()
                {
                    Id = 5, Name = "Jeremy"
                },
                new Person()
                {
                    Id = 1, Name = "Bob"
                }
            };

            var attributes = new XmlAttributes();

            attributes.XmlRoot = new XmlRootAttribute("People");

            var xmlAttribueOverrides = new XmlAttributeOverrides();

            xmlAttribueOverrides.Add(people.GetType(), attributes);

            var result = new XmlResult(people, xmlAttribueOverrides);

            result.ExecuteResult(_controllerContext);

            var doc = new XmlDocument();

            doc.LoadXml(_controllerContext.HttpContext.Response.Output.ToString());
            Assert.That(doc.DocumentElement.Name, Is.EqualTo("People"));
        }
        public void Should_serialise_xml()
        {
            var result = new XmlResult(new Person {Id = 5, Name = "Jeremy"});
            result.ExecuteResult(_controllerContext);

            var doc = new XmlDocument();
            doc.LoadXml(_controllerContext.HttpContext.Response.Output.ToString());
            Assert.That(doc.SelectSingleNode("/Person/Name").InnerText, Is.EqualTo("Jeremy"));
            Assert.That(doc.SelectSingleNode("/Person/Id").InnerText, Is.EqualTo("5"));
        }
예제 #5
0
        public void Should_serialise_xml()
        {
            var result = new XmlResult(new Person {
                Id = 5, Name = "Jeremy"
            });

            result.ExecuteResult(_controllerContext);

            var doc = new XmlDocument();

            doc.LoadXml(_controllerContext.HttpContext.Response.Output.ToString());
            Assert.That(doc.SelectSingleNode("/Person/Name").InnerText, Is.EqualTo("Jeremy"));
            Assert.That(doc.SelectSingleNode("/Person/Id").InnerText, Is.EqualTo("5"));
        }
예제 #6
0
        public void ExecuteResult_With_ContentEncoding()
        {
            //Arrange
            var httpResponse = new FakeResponse();
            var httpContext = MockRepository.GenerateMock<HttpContextBase>();
            httpContext.Expect(x => x.Response).Return(httpResponse);
            var context = new ControllerContext(httpContext, new RouteData(), new TestController());
            var result = new XmlResult {Data = 54, ContentEncoding = Encoding.UTF32};

            //Act
            result.ExecuteResult(context);

            //Assert
            Assert.AreEqual(Encoding.UTF32, httpResponse.ContentEncoding);
        }
예제 #7
0
        public void ExecuteResult_Uses_XmlSerializer()
        {
            //Arrange
            var httpResponse = new FakeResponse();
            var httpContext = MockRepository.GenerateMock<HttpContextBase>();
            httpContext.Expect(x => x.Response).Return(httpResponse);
            var context = new ControllerContext(httpContext, new RouteData(), new TestController());
            var result = new XmlResult(new NonDataContractTestSerial { Number = 54 });

            //Act
            result.ExecuteResult(context);

            //Assert
            httpResponse.OutputStream.Position = 0;
            var reader = new StreamReader(httpResponse.OutputStream);
            Assert.Contains(reader.ReadToEnd(), "<Number>54</Number>");
        }
예제 #8
0
        public void XmlOverrides_can_change_root_node()
        {
            var people = new System.Collections.Generic.List<Person>() {
                                            new Person(){ Id = 5, Name = "Jeremy" },
                                            new Person(){ Id = 1, Name = "Bob" }
            };

            var attributes = new XmlAttributes();
            attributes.XmlRoot = new XmlRootAttribute("People");

            var xmlAttribueOverrides = new XmlAttributeOverrides();
            xmlAttribueOverrides.Add(people.GetType(), attributes);

            var result = new XmlResult(people, xmlAttribueOverrides);
            result.ExecuteResult(_controllerContext);

            var doc = new XmlDocument();
            doc.LoadXml(_controllerContext.HttpContext.Response.Output.ToString());
            Assert.That(doc.DocumentElement.Name, Is.EqualTo("People"));
        }
 public void Should_set_content_type()
 {
     var result = new XmlResult(new[] {2, 3, 4});
     result.ExecuteResult(_controllerContext);
     Assert.AreEqual("text/xml", _controllerContext.HttpContext.Response.ContentType);
 }
예제 #10
0
        public void ExecuteResult_With_XNode()
        {
            //Arrange
            var httpResponse = new FakeResponse();
            var httpContext = MockRepository.GenerateMock<HttpContextBase>();
            httpContext.Expect(x => x.Response).Return(httpResponse);
            var context = new ControllerContext(httpContext, new RouteData(), new TestController());
            var node = new XDocument();
            node.AddFirst(" \t ");
            var result = new XmlResult {Data = node};

            //Act
            result.ExecuteResult(context);

            //Assert
            Assert.AreEqual(" \t ", httpResponse.TestString);
        }