public void WillWaitForProperties()
        {
            Engine.PacketWaitEntries = new PacketWaitEntries();

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0xD6)
                {
                    Assert.Fail();
                }

                int serial = (data[3] << 24) | (data[4] << 16) | (data[5] << 8) | data[6];

                byte[] packet = { 0xD6, 0x00, 0x09, 0x00, 0x01, data[3], data[4], data[5], data[6] };

                Engine.PacketWaitEntries.CheckWait(packet, PacketDirection.Incoming);
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            bool result = PropertiesCommands.WaitForProperties(0x00aabbcc, 5000);

            Assert.IsTrue(result);

            Engine.PacketWaitEntries        = null;
            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
        }
        public void WillGetPropertyValue()
        {
            const string localPath = @"C:\Users\johns\Desktop\KvG Client 2.0";

            if (!Directory.Exists(localPath))
            {
                Debug.WriteLine("Not running test, requires Cliloc.enu");
                return;
            }

            Cliloc.Initialize(localPath);

            byte[] packet =
            {
                0xD6, 0x00, 0x43, 0x00, 0x01, 0x40, 0xC5, 0xF6, 0x09, 0x00, 0x00, 0x02, 0xA0, 0x3B, 0xCF, 0x00,
                0x0F, 0x9E, 0xD5, 0x00, 0x00, 0x00, 0x10, 0x5E, 0x95, 0x00, 0x04, 0x37, 0x00, 0x34, 0x00, 0x00,
                0x10, 0x5C, 0x71, 0x00, 0x1A, 0x34, 0x00, 0x39, 0x00, 0x09, 0x00, 0x31, 0x00, 0x32, 0x00, 0x35,
                0x00, 0x09, 0x00, 0x37, 0x00, 0x31, 0x00, 0x09, 0x00, 0x35, 0x00, 0x35, 0x00, 0x30, 0x00, 0x00,
                0x00, 0x00, 0x00
            };

            Item item = new Item(0x40c5f609);

            Engine.Items.Add(item);

            IncomingPacketHandlers.Initialize();

            PacketHandler handler = IncomingPacketHandlers.GetHandler(0xD6);

            handler.OnReceive(new PacketReader(packet, packet.Length, false));

            Assert.IsNotNull(item.Properties);

            int value = PropertiesCommands.PropertyValue <int>(item.Serial, "Contents");

            Assert.AreEqual(49, value);

            value = PropertiesCommands.PropertyValue <int>(item.Serial, "Contents", 2);

            Assert.AreEqual(71, value);

            Engine.Items.Clear();
        }