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); }