public void EvaluateHoverability_PickedTempIsCarriedGear_PickedEqpIIIsInPoolIG_PickedEqpIIIsEquipped_CallsEngineBecomeHoverable()
    {
        IEquipToolPanelConstArg      arg;
        EquipToolEquippedItemsPanel  eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg);
        IEquippableItemIcon          pickedEqpII   = CreateStubEqpII(isBowOrWear: false, isInEqpIG: false, isEquipped: true);
        IPanelTransactionStateEngine mockEngine    = arg.panelTransactionStateEngine;

        eqpItemsPanel.EvaluateHoverability(pickedEqpII);

        mockEngine.Received(1).BecomeHoverable();
    }
    public void EvaluateHoverability_PickedEqpIIIsNotBowOrWear_CallsEngineBecomeHoverable()
    {
        IEquipToolPanelConstArg arg;
        EqpToolPoolItemsPanel   panel       = CreateEqpToolPoolItemsPanel(out arg);
        IEquippableItemIcon     pickedEqpII = Substitute.For <IEquippableItemIcon>();

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

        panel.EvaluateHoverability(pickedEqpII);

        engine.Received(1).BecomeHoverable();
    }
    public void EvaluateHoverability_PickedTempIsCarriedGear_PickedEqpIIIsInPoolIG_PickedEqpIIIsNotEquipped_RelevantEqpIGSizeIsOne_CallsEngineBecomeHoverable()
    {
        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(1);
        arg.eqpIITAM.GetRelevantEquipIG(pickedEqpII).Returns(relevantIG);

        eqpItemsPanel.EvaluateHoverability(pickedEqpII);

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