/Framework/src/Ncqrs.Tests/Eventing/Storage/BaseExceptionTests.cs
C# | 33 lines | 28 code | 5 blank | 0 comment | 0 complexity | fe2e769dfc6d65fc482cc5fad991967a MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, Apache-2.0
- using System;
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- using FluentAssertions;
- using Xunit;
-
- namespace Ncqrs.Tests.Eventing.Storage
- {
- public abstract class BaseExceptionTests<T> where T : Exception
- {
- protected abstract T Create();
- protected abstract void VerifyDeserialized(T created, T deserialized);
-
- [Fact]
- public void It_should_be_serializable()
- {
- var theException = Create();
- T deserializedException = null;
-
- using (var buffer = new MemoryStream())
- {
- var formatter = new BinaryFormatter();
- formatter.Serialize(buffer, theException);
-
- buffer.Seek(0, SeekOrigin.Begin);
- deserializedException = (T)formatter.Deserialize(buffer);
- }
-
- deserializedException.Should().NotBeNull();
- VerifyDeserialized(theException, deserializedException);
- }
- }
- }