public async Task MediaTypeShouldBeApplicationXmlAsync() { var dto = BuildDto(); var sut = new XmlContentSerializer(); var content = await sut.SerializeAsync(dto); Assert.Equal("application/xml", content.Headers.ContentType.MediaType); }
public async Task ShouldSerializeToXml() { var dto = BuildDto(); var sut = new XmlContentSerializer(); var content = await sut.SerializeAsync(dto); var document = new XmlDocument(); document.LoadXml(await content.ReadAsStringAsync()); var root = document[nameof(Dto)] ?? throw new NullReferenceException("Root element was not found"); Assert.Equal(dto.CreatedOn, XmlConvert.ToDateTime(root[nameof(Dto.CreatedOn)].InnerText, XmlDateTimeSerializationMode.Utc)); Assert.Equal(dto.Identifier, root[nameof(Dto.Identifier)].InnerText); Assert.Equal(dto.Name, root[nameof(Dto.Name)].InnerText); }
public async Task ShouldSerializeToXmlUsingNamespaceOverrides() { const string prefix = "google"; var dto = BuildDto(); var serializerSettings = new XmlContentSerializerSettings { XmlNamespaces = new XmlSerializerNamespaces() }; serializerSettings.XmlNamespaces.Add(prefix, "https://google.com"); var sut = new XmlContentSerializer(serializerSettings); var content = await sut.SerializeAsync(dto); var document = new XmlDocument(); document.LoadXml(await content.ReadAsStringAsync()); Assert.Equal(prefix, document["Dto"]?["Name", "https://google.com"]?.Prefix); }
public async Task ShouldSerializeToXmlUsingAttributeOverrides() { const string overridenRootElementName = "dto-ex"; var dto = BuildDto(); var serializerSettings = new XmlContentSerializerSettings(); var attributes = new XmlAttributes { XmlRoot = new XmlRootAttribute(overridenRootElementName) }; serializerSettings.XmlAttributeOverrides.Add(dto.GetType(), attributes); var sut = new XmlContentSerializer(serializerSettings); var content = await sut.SerializeAsync(dto); var document = new XmlDocument(); document.LoadXml(await content.ReadAsStringAsync()); Assert.Equal(overridenRootElementName, document.DocumentElement?.Name); }
public async Task XmlEncodingShouldMatchWriterSettingAsync() { var encoding = Encoding.UTF7; var serializerSettings = new XmlContentSerializerSettings { XmlReaderWriterSettings = new XmlReaderWriterSettings() { WriterSettings = new XmlWriterSettings() { Encoding = encoding } } }; var sut = new XmlContentSerializer(serializerSettings); var dto = BuildDto(); var content = await sut.SerializeAsync(dto); var xml = XDocument.Parse(await content.ReadAsStringAsync()); var documentEncoding = xml.Declaration.Encoding; Assert.Equal(encoding.WebName, documentEncoding); }