public void CanRemoveItemsOnSlot() { int baseQuantity = stackableItem.Quantity; // Check if an item can be completely removed. invent.AddItem(stackableItem); GameItem removed = invent.RemoveItem(0, 0, baseQuantity); Assert.IsNotNull(removed); Assert.IsTrue(stackableItem.Equals(removed)); Assert.AreEqual(GameItem.UNSET_ITEM, invent.GetItem(0, 0)); // Check if an item can have part of its quantity removed. invent.AddItem(stackableItem2); int toRemove = baseQuantity - 2; removed = invent.RemoveItem(0, 0, toRemove); Assert.IsNotNull(removed); Assert.AreEqual(toRemove, removed.Quantity); GameItem fetched1 = invent.GetItem(0, 0); int expectedQuantity = baseQuantity - toRemove; Assert.AreNotEqual(GameItem.UNSET_ITEM, fetched1); Assert.AreEqual(expectedQuantity, fetched1.Quantity); // Check if failure for attempting to remove more than is present. No items should be removed removed = invent.RemoveItem(0, 0, baseQuantity + 1); Assert.IsNull(removed); GameItem fetched2 = invent.GetItem(0, 0); Assert.AreNotEqual(GameItem.UNSET_ITEM, fetched2); Assert.AreEqual(expectedQuantity, fetched2.Quantity); //nothing removed }
public void SaveAndLoadTest() { bool saveSuccess = ItemLoader.SaveItem(testItem, saveAndLoadFile); Assert.AreEqual(true, saveSuccess); GameItem loadedItem = ItemLoader.LoadItem(saveAndLoadFile); Assert.AreEqual(true, testItem.Equals(loadedItem)); }
public void CanAddItems() { // Make sure inventory starts out empty GameItem beginning = invent.GetItem(0, 0); Assert.AreEqual(GameItem.UNSET_ITEM, beginning); // Check if an item was added correctly. GameItem remaining = invent.AddItem(stackableItem); Assert.IsNull(remaining); GameItem fetched = invent.GetItem(0, 0); Assert.IsTrue(fetched.Equals(stackableItem)); Assert.AreEqual(5, fetched.Quantity); // Check if inventory structure behaves as expected. GameItem remaining2 = invent.AddItem(diffItem); Assert.IsNull(remaining2); GameItem fetched2 = invent.GetItem(1, 0); Assert.AreNotEqual(GameItem.UNSET_ITEM, fetched2); Assert.IsTrue(fetched2.Equals(diffItem)); // Check if stacks correctly get updated. //1. Fill stackableItem slot to its max stack. int q = stackableItem.Quantity; GameItem remaining3 = invent.AddItem(stackableItem); Assert.IsNull(remaining3); GameItem fetched3 = invent.GetItem(0, 0); Assert.AreEqual(stackableItem.MaxStacks, fetched3.Quantity); //Note that stackableItem.Quantity has been updated as well since the inventory stores it only as a reference. //2. Add a new copy of stackableItem which should be in its own slot. GameItem remaining4 = invent.AddItem(stackableItem2); Assert.IsNull(remaining4); GameItem fetched4 = invent.GetItem(0, 0); Assert.AreEqual(stackableItem.MaxStacks, fetched4.Quantity); //original copy unchanged GameItem fetched5 = invent.GetItem(2, 0); Assert.AreNotEqual(GameItem.UNSET_ITEM, fetched5); Assert.IsTrue(fetched5.Equals(stackableItem2)); Assert.AreEqual(5, stackableItem2.Quantity); Assert.AreEqual(5, fetched5.Quantity); //new copy still has correct quantity }
public void ItemCopyTest() { GameItem stackableItem_copy = new GameItem(stackableItem); Assert.IsTrue(stackableItem_copy.Equals(stackableItem)); }
public void ItemEqualsTest() { Assert.IsTrue(stackableItem.Equals(sameItem)); Assert.IsFalse(stackableItem.Equals(diffItem)); Assert.IsFalse(stackableItem.Equals(GameItem.UNSET_ITEM)); }