/*  */
    public EquippableItemIconTransactionManager CreateEqpIITAM(out IEqpIITAMConstArg arg)
    {
        IEqpIITAMConstArg thisArg = CreateStubEqpIITAMConstArg();
        EquippableItemIconTransactionManager eqpIITAM = new EquippableItemIconTransactionManager(thisArg);

        arg = thisArg;
        return(eqpIITAM);
    }
    public void SetPickedII_SetsPickedEqpIIArg()
    {
        IEqpIITAMConstArg arg;
        EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg);
        IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>();

        eqpIITAM.SetPickedII(pickedEqpII);

        Assert.That(eqpIITAM.GetPickedEqpII(), Is.SameAs(pickedEqpII));
    }
    public void EvaluateHoverability_CallsPanelsAndAllRelevIGsEvaluateHov()
    {
        IEqpIITAMConstArg arg;
        EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg);
        IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>();

        eqpIITAM.SetPickedII(pickedEqpII);

        eqpIITAM.EvaluateHoverability();

        arg.equippedItemsPanel.Received(1).EvaluateHoverability(pickedEqpII);
        arg.poolItemsPanel.Received(1).EvaluateHoverability(pickedEqpII);
        arg.eqpToolIGManager.GetRelevantPoolIG().Received(1).EvaluateAllIIsHoverability(pickedEqpII);
        arg.eqpToolIGManager.GetRelevantEquipIG(pickedEqpII).Received(1).EvaluateAllIIsHoverability(pickedEqpII);
    }
    public void GetAllRelevantIGs_ArgIsNotNull_ReturnsPoolIGAndRelevantEquipIG()
    {
        IEqpIITAMConstArg arg;
        EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg);
        IEquipToolIGManager eqpToolIGManager          = arg.eqpToolIGManager;
        IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>();

        List <IIconGroup>   actualIGs          = eqpIITAM.GetAllRelevantIGs(pickedEqpII);
        List <IEquipToolIG> expectedEqpToolIGs = new List <IEquipToolIG>(new IEquipToolIG[] {
            eqpToolIGManager.GetRelevantPoolIG(),
            eqpToolIGManager.GetRelevantEquipIG(pickedEqpII)
        });

        Assert.That(actualIGs, Is.EqualTo(expectedEqpToolIGs));
    }
    public void GetAllRelevantIGs_ArgIsNull_ReturnsPoolIGAndAllRelevantEqpIGs()
    {
        IEqpIITAMConstArg arg;
        EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg);
        IEquipToolIGManager eqpToolIGManager          = arg.eqpToolIGManager;

        List <IIconGroup> actualIGs   = eqpIITAM.GetAllRelevantIGs(null);
        List <IIconGroup> expectedIGs = new List <IIconGroup>(new IIconGroup[] {
            eqpToolIGManager.GetRelevantPoolIG(),
            eqpToolIGManager.GetRelevantEquippedBowIG(),
            eqpToolIGManager.GetRelevantEquippedWearIG(),
            eqpToolIGManager.GetRelevantEquippedCarriedGearsIG()
        });

        Assert.That(actualIGs, Is.EqualTo(expectedIGs));
    }