PageRenderTime 25ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/Framework/src/Ncqrs.Tests/Eventing/Storage/BaseExceptionTests.cs

http://github.com/ncqrs/ncqrs
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
  1. using System;
  2. using System.IO;
  3. using System.Runtime.Serialization.Formatters.Binary;
  4. using FluentAssertions;
  5. using Xunit;
  6. namespace Ncqrs.Tests.Eventing.Storage
  7. {
  8. public abstract class BaseExceptionTests<T> where T : Exception
  9. {
  10. protected abstract T Create();
  11. protected abstract void VerifyDeserialized(T created, T deserialized);
  12. [Fact]
  13. public void It_should_be_serializable()
  14. {
  15. var theException = Create();
  16. T deserializedException = null;
  17. using (var buffer = new MemoryStream())
  18. {
  19. var formatter = new BinaryFormatter();
  20. formatter.Serialize(buffer, theException);
  21. buffer.Seek(0, SeekOrigin.Begin);
  22. deserializedException = (T)formatter.Deserialize(buffer);
  23. }
  24. deserializedException.Should().NotBeNull();
  25. VerifyDeserialized(theException, deserializedException);
  26. }
  27. }
  28. }