public static void Test_Throws_On_Null_Value()
        {
            //arrange
            ProtobufnetDeserializerStrategy deserializer = new ProtobufnetDeserializerStrategy();

            //assert
            Assert.Throws <ArgumentNullException>(() => deserializer.Deserialize <object>((Stream)null));
        }
        public static void Test_Deserializes_To_Equivalent_Value <TObjectType>(TObjectType obj)
        {
            //arrange
            ProtobufnetDeserializerStrategy deserializer = new ProtobufnetDeserializerStrategy();

            MemoryStream ms = new MemoryStream();

            ProtoBuf.Serializer.Serialize(ms, obj);
            ms.Position = 0;             //this is needed because it won't rewind the stream

            //assert
            Assert.AreEqual(ProtoBuf.Serializer.Deserialize <TObjectType>(ms), deserializer.Deserialize <TObjectType>(ms.ToArray()));

            ms.Dispose();
        }