public void ShouldSerializeObjectUsingStream()
        {
            var expected = new SimpleType { TextA = "textA", TextB = "hello" };

            byte[] data;
            using (var outputStream = new MemoryStream())
            {
                _subject.Serialize(outputStream, expected);
                data = outputStream.ToArray();
            }
            using (var inputStream = new MemoryStream(data))
            {
                var deserialized = _subject.Deserialize<object>(inputStream);
                Assert.That(deserialized, Is.EqualTo(expected));
            }
        }
        public void ShouldSerializeMultipleObjectsUsingSameStream()
        {
            var expected1 = new SimpleType { TextA = "textA", TextB = "hello" };
            var expected2 = new ComplexStruct { Span = TimeSpan.FromMilliseconds(56), Text = "test" };

            byte[] data;
            using (var outputStream = new MemoryStream())
            {
                _subject.Serialize(outputStream, expected1);
                _subject.Serialize(outputStream, expected2);
                data = outputStream.ToArray();
            }
            using (var inputStream = new MemoryStream(data))
            {
                var deserialized1 = _subject.Deserialize<object>(inputStream);
                var deserialized2 = _subject.Deserialize<object>(inputStream);
                Assert.That(deserialized1, Is.EqualTo(expected1));
                Assert.That(deserialized2, Is.EqualTo(expected2));
            }
        }