using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using NUnit.Framework;
// ...
[TestFixture]
public class EntityNotFoundExceptionTests
{
private const string Message = "some message";
private const int EntityId = 1;
[Test]
public void WhenNoArgs_ThenSetMessageToDefault()
{
var sut = new EntityNotFoundException();
Assert.That(sut.Message, Is.EqualTo("Entity does not exist."));
}
[Test]
public void WhenMessageSpecified_ThenSetMessage()
{
var sut = new EntityNotFoundException(Message);
Assert.That(sut.Message, Is.EqualTo(Message));
}
[Test]
public void WhenMessageAndInnerExSpecified_ThenSetMessageAndInnerEx()
{
var innerException = new Exception();
var sut = new EntityNotFoundException(Message, innerException);
Assert.That(sut.Message, Is.EqualTo(Message));
Assert.That(sut.InnerException, Is.SameAs(innerException));
}
[Test]
public void WhenIdSpecified_ThenSetProperty()
{
var sut = new EntityNotFoundException(EntityId);
Assert.That(sut.Message, Is.EqualTo($"Entity does not exist with ID: '{EntityId}'."));
Assert.That(sut.EntityId, Is.EqualTo(EntityId));
}
[Test]
public void WhenSerialized_ThenDeserializeCorrectly()
{
var sut = new EntityNotFoundException(EntityId);
var result = Serializer.SerializeAndDeserialize(sut);
Assert.That(result.EntityId, Is.EqualTo(sut.EntityId));
Assert.That(result.ToString(), Is.EqualTo(sut.ToString()));
}
}
// ...
internal static class Serializer
{
public static TException SerializeAndDeserialize<TException>(TException exception)
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
formatter.Serialize(stream, exception);
stream.Seek(0, 0);
return (TException)formatter.Deserialize(stream);
}
}
}
Last active
August 12, 2021 03:24
-
-
Save ByteDev/13224bd3b27ef21e96012a242ac295ad to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment