예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }
예제 #6
0
        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]);
        }