using System.Xml; using System.Xml.Linq; using Xunit; namespace Dapper.Tests { [Collection("XmlTests")] public sealed class SystemSqlClientXmlTests : XmlTests { } #if MSSQLCLIENT [Collection("XmlTests")] public sealed class MicrosoftSqlClientXmlTests : XmlTests { } #endif public abstract class XmlTests : TestBase where TProvider : DatabaseProvider { [Fact] public void CommonXmlTypesSupported() { var xml = new XmlDocument(); xml.LoadXml(""); var foo = new Foo { A = xml, B = XDocument.Parse(""), C = XElement.Parse("") }; var bar = connection.QuerySingle("select @a as [A], @b as [B], @c as [C]", new { a = foo.A, b = foo.B, c = foo.C }); Assert.Equal("abc", bar.A?.DocumentElement?.Name); Assert.Equal("def", bar.B?.Root?.Name.LocalName); Assert.Equal("ghi", bar.C?.Name.LocalName); } public class Foo { public XmlDocument? A { get; set; } public XDocument? B { get; set; } public XElement? C { get; set; } } } }