public void ExcecuteTransaction_ThisEIIToEquipIsNotNull_CallsItEquip()
    {
        IEqpIITAMConstArg   arg;
        TestEqpIITAM        testEqpIITAM = CreateTestEqpIITAM(out arg);
        IEquippableItemIcon eii          = Substitute.For <IEquippableItemIcon>();

        testEqpIITAM.SetEIIToEquip(eii);
        Assert.That(testEqpIITAM.GetEIIToEquip(), Is.SameAs(eii));

        testEqpIITAM.ExecuteTransaction();

        eii.Received(1).Equip();
    }
    public void HoverDefaultTransactionTargetEqpII_WhenCalled_CallsRelevEqpIGDefTATarEqpIICheckForHover()
    {
        IEquipToolPanelConstArg     arg;
        EquipToolEquippedItemsPanel eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg);
        IEquippableItemIcon         pickedEqpII   = Substitute.For <IEquippableItemIcon>();
        IEquipToolEquipIG           relevantIG    = Substitute.For <IEquipToolEquipIG>();
        IEquippableItemIcon         mockTarEqpII  = Substitute.For <IEquippableItemIcon>();

        relevantIG.GetDefaultTATargetEqpII(pickedEqpII).Returns(mockTarEqpII);
        arg.eqpIITAM.GetRelevantEquipIG(pickedEqpII).Returns(relevantIG);

        eqpItemsPanel.HoverDefaultTransactionTargetEqpII(pickedEqpII);

        mockTarEqpII.Received(1).CheckForHover();
    }
    public void ExcecuteTransaction_ThisEIIToEquipIsNotNull_ThisEIIToEquipIsSameAsPickedEqpII_CallsItImmigrateToRelevEqpIG()
    {
        IEqpIITAMConstArg   arg;
        TestEqpIITAM        testEqpIITAM = CreateTestEqpIITAM(out arg);
        IEquippableItemIcon eii          = Substitute.For <IEquippableItemIcon>();

        testEqpIITAM.SetEIIToEquip(eii);
        Assert.That(testEqpIITAM.GetEIIToEquip(), Is.SameAs(eii));
        testEqpIITAM.SetPickedII(eii);
        Assert.That(testEqpIITAM.GetPickedEqpII(), Is.SameAs(testEqpIITAM.GetEIIToEquip()));
        IEquipToolEquipIG eqpIG = arg.eqpToolIGManager.GetRelevantEquipIG(eii);

        testEqpIITAM.ExecuteTransaction();

        eii.Received(1).TravelTransfer(eqpIG);
    }
    public void ExcecuteTransaction_ThisEIIToUnequipIsNotNull_ThisEIIToUnequipIsNotSameAsPickedEqpII_CallsItTransferToPool()
    {
        IEqpIITAMConstArg   arg;
        TestEqpIITAM        testEqpIITAM = CreateTestEqpIITAM(out arg);
        IEquippableItemIcon eii          = Substitute.For <IEquippableItemIcon>();

        testEqpIITAM.SetEIIToUnequip(eii);
        Assert.That(testEqpIITAM.GetEIIToUnequip(), Is.SameAs(eii));
        IEquippableItemIcon otherEii = Substitute.For <IEquippableItemIcon>();

        testEqpIITAM.SetPickedII(otherEii);
        Assert.That(testEqpIITAM.GetPickedEqpII(), Is.Not.SameAs(testEqpIITAM.GetEIIToUnequip()));
        IEquipToolPoolIG poolIG = arg.eqpToolIGManager.GetRelevantPoolIG();

        testEqpIITAM.ExecuteTransaction();

        eii.Received(1).SpotTransfer(poolIG);
    }