public void EvaluateHoverability_PickedEqpIIIsBowOrWear_DoesNotCallEngineBecomeHoverable()
    {
        IEquipToolPanelConstArg arg;
        EqpToolPoolItemsPanel   panel       = CreateEqpToolPoolItemsPanel(out arg);
        IEquippableItemIcon     pickedEqpII = Substitute.For <IEquippableItemIcon>();

        pickedEqpII.IsBowOrWearItemIcon().Returns(true);
        IPanelTransactionStateEngine engine = arg.panelTransactionStateEngine;

        panel.EvaluateHoverability(pickedEqpII);

        engine.DidNotReceive().BecomeHoverable();
    }
    public void EvaluateHoverability_PickedTempIsCarriedGear_PickedEqpIIIsInPoolIG_PickedEqpIIIsNotEquipped_RelevantEqpIGSizeIsNotOne_relevantIGNotHasSlotSpace_CallsEngineBecomeUnhoverable()
    {
        IEquipToolPanelConstArg      arg;
        EquipToolEquippedItemsPanel  eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg);
        IEquippableItemIcon          pickedEqpII   = CreateStubEqpII(isBowOrWear: false, isInEqpIG: false, isEquipped: false);
        IPanelTransactionStateEngine mockEngine    = arg.panelTransactionStateEngine;
        IEquipToolEquipIG            relevantIG    = Substitute.For <IEquipToolEquipIG>();

        relevantIG.GetSize().Returns(2);
        relevantIG.HasSlotSpace().Returns(false);
        arg.eqpIITAM.GetRelevantEquipIG(pickedEqpII).Returns(relevantIG);

        eqpItemsPanel.EvaluateHoverability(pickedEqpII);

        mockEngine.DidNotReceive().BecomeHoverable();
        mockEngine.Received(1).BecomeUnhoverable();
    }