<PackageReference Include="NUnit" Version="3.10.1" />

XmlSerializableConstraint

XmlSerializableConstraint tests whether an object is serializable in XML format.
using System; using System.IO; using System.Xml.Serialization; namespace NUnit.Framework.Constraints { public class XmlSerializableConstraint : Constraint { private XmlSerializer serializer; public override string Description => "XML serializable"; public override ConstraintResult ApplyTo<TActual>(TActual actual) { if (actual == null) throw new ArgumentNullException("actual"); MemoryStream memoryStream = new MemoryStream(); bool isSuccess = false; try { serializer = new XmlSerializer(actual.GetType()); serializer.Serialize(memoryStream, actual); memoryStream.Seek(0, SeekOrigin.Begin); isSuccess = (serializer.Deserialize(memoryStream) != null); } catch (NotSupportedException) { } catch (InvalidOperationException) { } return new ConstraintResult(this, actual.GetType(), isSuccess); } protected override string GetStringRepresentation() { return "<xmlserializable>"; } public XmlSerializableConstraint() : base(Array.Empty<object>()) { } } }