public void MergeCompatibleItemsTest() { var arrowsClone = (EquippableItemInstance)_arrowsItem.Clone(); _equipmentCollection.SetEquipmentTypes(3, new[] { _arrowsEquipmentType }); var set1 = _equippableCharacter.EquipAt(3, _arrowsItem, 10); var set2 = _equippableCharacter.EquipAt(4, arrowsClone, 10); var merged = _equipmentCollection.MergePublic(3, _equipmentCollection, 4, _equipmentCollection.GetAmount(3)); Assert.IsNull(set1.error); Assert.IsNull(set2.error); Assert.IsNull(merged.error); Assert.AreEqual(20, _equipmentCollection.GetAmount(4)); }
public void UnEquipFullRestoreCollectionTest() { var clone = (IEquippableItemInstance)_headItem.Clone(); _restoreToCollection.Add(_headItem, _headItem.maxStackSize * _restoreToCollection.slotCount); // Fill collection var canAdd = _restoreToCollection.CanAdd((IEquippableItemInstance)_headItem.Clone(), 1); var equipped = _equippableCharacter.Equip(clone, 1); var unEquipped = _equippableCharacter.UnEquip(clone); Assert.AreEqual(Errors.CollectionFull, canAdd.error); Assert.IsNull(equipped.error); Assert.AreEqual(Errors.CollectionFull, unEquipped.error); Assert.AreEqual(_equipmentCollection, clone.collectionEntry?.collection); Assert.AreEqual(_headItem, _equipmentCollection[0]); Assert.AreEqual(1, _equipmentCollection.GetAmount(0)); }
public void SwapCompatibleItemsTest2() { var set = _equippableCharacter.EquipAt(3, _swordItem); var set2 = _equippableCharacter.EquipAt(4, (EquippableItemInstance)_swordItem.Clone()); var swapped = _equippableCharacter.SwapOrMerge(3, 4); Assert.IsNull(set.error); Assert.IsNull(set2.error); Assert.IsNull(swapped.error); }
public void SwapStackable() { var col = new CollectionAccessibleMethods <IItemInstance>(10); var arrowsClone = (MockedEquippableItemInstance)_arrowsItem.Clone(); var set = col.Set(0, _arrowsItem, 5); var set2 = _character.EquipAt(4, arrowsClone, 2); var swapped = col.SwapPublic(0, _equipmentCollection, 4); Assert.IsNull(set.error); Assert.IsNull(set2.error); Assert.IsNull(swapped.error); Assert.AreSame(arrowsClone, col[0]); Assert.AreSame(_arrowsItem, _equipmentCollection[4]); // Events aren't fired because we don't use the IEquippableCharacter, and move to the collection directly. Assert.AreEqual(0, _arrowsItem.onEquippedCallCount); Assert.AreEqual(0, _arrowsItem.onUnEquippedCallCount); Assert.AreEqual(1, arrowsClone.onEquippedCallCount); Assert.AreEqual(0, arrowsClone.onUnEquippedCallCount); }
public void SwapSameItem() { var swordClone = (MockedEquippableItemInstance)_swordItem.Clone(); var set1 = _character.EquipAt(3, swordClone, 1); var set2 = _character.EquipAt(4, _swordItem, 1); var swapped = _character.SwapOrMerge(4, 3); Assert.IsNull(set1.error); Assert.IsNull(set2.error); Assert.IsNull(swapped.error); Assert.AreSame(swordClone, _equipmentCollection[4]); Assert.AreSame(_swordItem, _equipmentCollection[3]); Assert.AreEqual(1, _swordItem.onEquippedCallCount); Assert.AreEqual(0, _swordItem.onUnEquippedCallCount); Assert.AreEqual(1, swordClone.onEquippedCallCount); Assert.AreEqual(0, swordClone.onUnEquippedCallCount); }
public void EquipFromMultipleStacksTest() { // Add to start collection var arrowClone = (IEquippableItemInstance)_arrowsItem.Clone(); var set = _restoreToCollection.Set(0, _arrowsItem, 3); var set2 = _restoreToCollection.Set(1, arrowClone, 4); // Equip should remove items from startCollection and add to equipment collection var equipped = _equippableCharacter.EquipAt(4, _arrowsItem, 5); Assert.IsNull(set.error); Assert.IsNull(set2.error); Assert.AreEqual(Errors.CollectionDoesNotContainItem, equipped.error); Assert.IsNull(_equipmentCollection[4]); Assert.AreEqual(0, _equipmentCollection.GetAmount(4)); Assert.AreEqual(3, _restoreToCollection.GetAmount(0)); Assert.AreEqual(4, _restoreToCollection.GetAmount(1)); Assert.AreSame(arrowClone, _restoreToCollection[1]); }