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

BinarySerializableConstraint

using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System; namespace NUnit.Framework.Constraints { internal class ExceptionNotThrownConstraint : Constraint { public override string Description => "No Exception to be thrown"; public override ConstraintResult ApplyTo<TActual>(TActual actual) { Exception ex = actual as Exception; Exception ex; return new ConstraintResult(this, ex, ex == null); } } } namespace NUnit.Framework.Constraints { public class BinarySerializableConstraint : Constraint { private readonly BinaryFormatter serializer = new BinaryFormatter(); public override string Description => "binary serializable"; public override ConstraintResult ApplyTo<TActual>(TActual actual) { if (actual == null) throw new ArgumentNullException("actual"); MemoryStream memoryStream = new MemoryStream(); bool isSuccess = false; try { serializer.Serialize(memoryStream, actual); memoryStream.Seek(0, SeekOrigin.Begin); isSuccess = (serializer.Deserialize(memoryStream) != null); } catch (SerializationException) { } return new ConstraintResult(this, actual.GetType(), isSuccess); } protected override string GetStringRepresentation() { return "<binaryserializable>"; } } } namespace NUnit.Framework.Constraints { }