public void EqpIIHoveredState_OnEnter_ThisEqpIIInPoolIG_ThisEqpIIDoesNotHaveSameItemAsPicked_CallsEqpIITAMSetEqpIIToEquipThis()
    {
        IEqpIITAStateConstArg arg;
        IEquippableItemIcon   eqpII;
        EqpIIHoveredState     state = CreateEqpIIHoveredState(out arg, out eqpII);

        eqpII.IsInEqpIG().Returns(false);
        IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>();

        eqpII.HasSameItem(pickedEqpII).Returns(false);
        state.SetPickedItemIcon(pickedEqpII);

        state.OnEnter();

        IEquippableIITAManager mockEqpIITAM = arg.eqpIITAM;

        mockEqpIITAM.Received(1).SetEqpIIToEquip(eqpII);
    }
    public void EqpIIHoveredState_OnEnter_ThisEqpIIsInEqpIG_ThisEqpIIIsNotEmpty_ThisEqpIIHasSameItemAsPicked_DoesNotCallEqpIITAM()
    {
        IEqpIITAStateConstArg arg;
        IEquippableItemIcon   eqpII;
        EqpIIHoveredState     state = CreateEqpIIHoveredState(out arg, out eqpII);

        eqpII.IsInEqpIG().Returns(true);
        eqpII.IsEmpty().Returns(false);
        IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>();

        eqpII.HasSameItem(pickedEqpII).Returns(true);
        state.SetPickedItemIcon(pickedEqpII);

        state.OnEnter();

        IEquippableIITAManager mockEqpIITAM = arg.eqpIITAM;

        mockEqpIITAM.DidNotReceive().SetEqpIIToEquip(eqpII);
        mockEqpIITAM.DidNotReceive().SetEqpIIToUnequip(eqpII);
    }