public void Test_Can_Set_Data_On_Unimplemented_PayloadType(Type t)
        {
            //arrange
            byte[] bytes = Enumerable.Range(5, 100).Select(i => (byte)i).ToArray();
            IUnimplementedGamePacketPayload obj = Activator.CreateInstance(t) as IUnimplementedGamePacketPayload;

            //act
            Assert.DoesNotThrow(() => obj.Data = bytes);

            //assert
            Assert.NotNull(obj.Data);
            for (int i = 0; i < bytes.Length; i++)
            {
                Assert.AreEqual(bytes[i], obj.Data[i]);
            }
        }
        public void Test_Can_Serialize_DynamicProxyDTOs_(Type t)
        {
            //arrange
            SerializerService serializer = new SerializerService();

            serializer.RegisterType(t);
            byte[] bytes = Enumerable.Range(5, 100).Select(i => (byte)i).ToArray();
            IUnimplementedGamePacketPayload obj = Activator.CreateInstance(t) as IUnimplementedGamePacketPayload;

            obj.Data = bytes;
            serializer.Compile();

            //act
            byte[] serializedBytes = serializer.Serialize(obj as GamePacketPayload);

            //assert
            Assert.NotNull(serializedBytes);
            Assert.AreEqual(bytes.Length + sizeof(NetworkOperationCode), serializedBytes.Length);

            for (int i = 0; i < bytes.Length; i++)
            {
                Assert.AreEqual(bytes[i], serializedBytes[i + 2]);
            }
        }