public void AddOrReplaceTest() { ItemList list = new ItemList(); Item stackableItem = TestUtils.RandomStackableItem(); Item nonStackableItem = TestUtils.RandomNonStackableItem(); int count = stackableItem.Count; Item junkedItem = list.AddOrReplace(stackableItem); Assert.AreEqual(1, list.Count); Assert.IsNull(junkedItem); Assert.AreEqual(count, list.CountOf(stackableItem.ItemType)); junkedItem = list.AddOrReplace(stackableItem); Assert.AreEqual(1, list.Count); Assert.IsNull(junkedItem); Assert.AreEqual(count * 2, list.CountOf(stackableItem.ItemType)); junkedItem = list.AddOrReplace(nonStackableItem); Assert.AreEqual(2, list.Count); Assert.IsNull(junkedItem); Assert.AreEqual(1, list.CountOf(nonStackableItem.ItemType)); junkedItem = list.AddOrReplace(nonStackableItem); Assert.AreEqual(2, list.Count); Assert.AreEqual(nonStackableItem, junkedItem); Assert.AreEqual(1, list.CountOf(nonStackableItem.ItemType)); // TODO: Test a non-stackable item replacing an inferior item }