public async Task RoundEngine_GetItemFromPoolIfBetter_Location_Empty_Should_Fail()
        {
            Engine.MonsterList.Clear();

            // Both need to be character to fall through to the Name Test
            // Arrange
            var Character = new BaseCharacter
            {
                Speed      = 20,
                Level      = 1,
                CurrHealth = 1,
                ////ExperienceTotal = 1,
                Name      = "Z",
                ListOrder = 1,
                Guid      = "me"
            };

            // Add each model here to warm up and load it.
            Game.Helpers.DataSetsHelper.WarmUp();

            var item1 = new ItemModel {
                Attribute = AttributeEnum.Attack, Value = 1, Location = ItemLocationEnum.Feet
            };
            var item2 = new ItemModel {
                Attribute = AttributeEnum.Attack, Value = 20, Location = ItemLocationEnum.Feet
            };

            await ItemIndexViewModel.Instance.CreateAsync(item1);

            await ItemIndexViewModel.Instance.CreateAsync(item2);

            Engine.ItemPool.Add(item1);
            Engine.ItemPool.Add(item2);

            // Put the Item on the Character
            Character.Head = null;

            var CharacterPlayer = new PlayerInfoModel(Character);

            Engine.CharacterList.Clear();
            Engine.CharacterList.Add(new PlayerInfoModel(Character));

            // Make the List
            Engine.PlayerList = Engine.MakePlayerList();

            // Act

            var result = Engine.GetItemFromPoolIfBetter(CharacterPlayer, ItemLocationEnum.Feet);

            // Reset

            // Assert
            Assert.AreEqual(true, result);
            Assert.AreEqual(item2.Id, CharacterPlayer.Feet);    // The 2nd item is better, so did they swap?
        }
        public async Task RoundEngine_GetItemFromPoolIfBetter_Location_Empty_Should_Fail()
        {
            // Arrange
            var Character = new CharacterModel
            {
                Speed           = 20,
                Level           = 1,
                CurrentHealth   = 1,
                TotalExperience = 1,
                Name            = "Z",
                Id = "me"
            };

            // Add each model here to warm up and load it.
            Game.Helpers.DataSetsHelper.WarmUp();

            var item1 = new ItemModel {
                Attribute = AttributeEnum.Attack, Value = 1, Location = ItemLocationEnum.Feet
            };
            var item2 = new ItemModel {
                Attribute = AttributeEnum.Attack, Value = 20, Location = ItemLocationEnum.Feet
            };

            await ItemIndexViewModel.Instance.CreateAsync(item1);

            await ItemIndexViewModel.Instance.CreateAsync(item2);

            Engine.ItemPool.Add(item1);
            Engine.ItemPool.Add(item2);

            // Put the Item on the Character
            Character.HeadItem = null;

            Engine.CharacterList.Clear();
            Engine.CharacterList.Add(Character);

            // Make the List
            Engine.EntityList = Engine.MakeEntityList();

            // Act

            var result = Engine.GetItemFromPoolIfBetter(Character, ItemLocationEnum.Feet);

            // Reset

            // Assert
            Assert.AreEqual(true, result);
            Assert.AreEqual(item2.Id, Character.FeetItem);    // The 2nd item is better, so did they swap?
        }