public void CanBeSerializedAndDeserializedTest()
{
var message = Guid.NewGuid().ToString();
var targetType = typeof(Person);
var referenceName = Guid.NewGuid().ToString();
var context = new Company();
var buildLog = Guid.NewGuid().ToString();
var inner = new TimeoutException();
var formatter = new BinaryFormatter();
var target = new BuildException(message, targetType, referenceName, context, buildLog, inner);
using (var ms = new MemoryStream())
{
formatter.Serialize(ms, target);
ms.Seek(0, SeekOrigin.Begin);
var outputException = formatter.Deserialize(ms) as BuildException;
outputException.Message.Should().Be(message);
outputException.TargetType.Should().Be(targetType);
outputException.ReferenceName.Should().Be(referenceName);
outputException.Context.Should().BeNull();
outputException.BuildLog.Should().Be(buildLog);
outputException.InnerException.Message.ShouldBeEquivalentTo(inner.Message);
}
}