Example #1
0
        public async Task Given_Spec_When_Build_Then_WriterSerializesObject()
        {
            var obj = new TestClass {
                Test = true
            };

            using (var stream = new MemoryStream())
            {
                var response = A.Dummy <IWebResponse>();
                A.CallTo(() => response.BodyStream).Returns(stream);

                var sut       = new XmlWebWriterSpecification();
                var xmlWriter = sut.Build();

                await xmlWriter(response, obj);

                stream.Flush();

                var resultBytes = stream.ToArray();
                var result      = System.Text.Encoding.UTF8.GetString(resultBytes);

                const string expectedBody = "<?xml version=\"1.0\"?>\r\n"
                                            + "<TestClass xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n"
                                            + "  <Test>true</Test>\r\n"
                                            + "</TestClass>";
                Assert.That(result, Is.EqualTo(expectedBody));
                A.CallToSet(() => response.ContentType).To("application/xml").MustHaveHappened();
            }
        }
        public static void XmlSerializer(this IWebRequestResponseObjectConfigurator configurator, Action <IXmlWebWriterConfigurator>?config = null)
        {
            var spec = new XmlWebWriterSpecification();

            config?.Invoke(spec);
            configurator.SetWriterSpecification(spec);
        }