Ejemplo n.º 1
0
    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
    }
Ejemplo n.º 2
0
    public void SaveAndLoadTest()
    {
        bool saveSuccess = ItemLoader.SaveItem(testItem, saveAndLoadFile);

        Assert.AreEqual(true, saveSuccess);
        GameItem loadedItem = ItemLoader.LoadItem(saveAndLoadFile);

        Assert.AreEqual(true, testItem.Equals(loadedItem));
    }
Ejemplo n.º 3
0
    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
    }
Ejemplo n.º 4
0
    public void ItemCopyTest()
    {
        GameItem stackableItem_copy = new GameItem(stackableItem);

        Assert.IsTrue(stackableItem_copy.Equals(stackableItem));
    }
Ejemplo n.º 5
0
 public void ItemEqualsTest()
 {
     Assert.IsTrue(stackableItem.Equals(sameItem));
     Assert.IsFalse(stackableItem.Equals(diffItem));
     Assert.IsFalse(stackableItem.Equals(GameItem.UNSET_ITEM));
 }