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();
    }
    /*  */
    public EquipToolEquippedItemsPanel CreateEqpToolEqpItemsPanel(out IEquipToolPanelConstArg arg)
    {
        IUIManager uim = Substitute.For <IUIManager>();
        IPickUpSystemProcessFactory pickUpSystemProcessFactory = Substitute.For <IPickUpSystemProcessFactory>();
        IEquipToolUIEFactory        equipToolUIEFactory        = Substitute.For <IEquipToolUIEFactory>();
        IUIAdaptor                   uia           = Substitute.For <IUIAdaptor>();
        IUIImage                     image         = Substitute.For <IUIImage>();
        IEquippableIITAManager       eqpIITAM      = Substitute.For <IEquippableIITAManager>();
        IEquipTool                   eqpTool       = Substitute.For <IEquipTool>();
        IPanelTransactionStateEngine engine        = Substitute.For <IPanelTransactionStateEngine>();
        IEquipToolPanelConstArg      thisArg       = new EquipToolPanelConstArg(uim, pickUpSystemProcessFactory, equipToolUIEFactory, uia, image, eqpTool, eqpIITAM, engine);
        EquipToolEquippedItemsPanel  eqpItemsPanel = new EquipToolEquippedItemsPanel(thisArg);

        arg = thisArg;
        return(eqpItemsPanel);
    }
        public EquipToolPanelConstArg(
            IUIManager uim,
            IPickUpSystemProcessFactory pickUpSystemProcessFactory,
            IEquipToolUIEFactory equipToolUIEFactory,
            IUIAdaptor uia,
            IUIImage image,


            IEquipTool eqpTool,
            IEquippableIITAManager eqpIITAM,
            IPanelTransactionStateEngine engine
            ) : base(
                uim,
                pickUpSystemProcessFactory,
                equipToolUIEFactory,
                uia,
                image,
                ActivationMode.None
                )
        {
            thisEqpIITAM = eqpIITAM;
            thisPanelTransactionStateEngine = engine;
            thisEquipTool = eqpTool;
        }