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

        testEqpIITAM.SetEIIToUnequip(eii);
        Assert.That(testEqpIITAM.GetEIIToUnequip(), Is.SameAs(eii));

        testEqpIITAM.ExecuteTransaction();

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

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

        testEqpIITAM.ExecuteTransaction();

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