public void Deserialize_object_properly()
            {
                var test = CreateSampleTestData();
                var obj  = CreateSerializedObject(test);

                Console.WriteLine(new ArraySegment <byte>(obj.GetBuffer(), 0, (int)obj.Length).ToBinaryString());

                var serializer = new MessagePackStacksSerializer();

                serializer.Initialize();
                var recv = serializer.Deserialize <TestData>(obj);

                Assert.Equal(test.Foo, recv.Foo);
                Assert.Equal(test.Bar, recv.Bar);
                Assert.Equal(test.Sar, recv.Sar);
                Assert.Equal(test.Zar, recv.Zar);
            }
            public void Serialize_data_so_it_can_be_later_deserialized_with_Deserialize()
            {
                var test = CreateSampleTestData();

                var serializer = new MessagePackStacksSerializer();

                serializer.Initialize();
                var ms = new MemoryStream();

                serializer.Serialize(test, ms);
                ms.Position = 0;
                var data = serializer.Deserialize <TestData>(ms);

                Assert.Equal(test.Bar, data.Bar);
                Assert.Equal(test.Foo, data.Foo);
                Assert.Equal(test.Sar, data.Sar);
                Assert.Equal(test.Zar, data.Zar);
            }