public void CheckAndIncrementPickUpQuantity_ThisIITAMIsInPickedUpState_IncrementQGreaterThanZero_CallsPickedIIIncreaseBy(int transferableQuantity, int itemQuantity, int pickUpStepQuantity)
    {
        IItemIcon thisII;
        IItemIconTransactionManager   thisIITAM;
        IPickUpSystemUIElementFactory thisUIEFactory;
        ItemIconPickUpImplementor     implementor = CreateIIPUImplementor(transferableQuantity, itemQuantity, pickUpStepQuantity, out thisII, out thisIITAM, out thisUIEFactory);

        thisIITAM.IsInPickedUpState().Returns(true);
        IItemIcon pickedII = Substitute.For <IItemIcon>();

        thisIITAM.GetPickedII().Returns(pickedII);

        implementor.CheckAndIncrementPickUpQuantity();

        pickedII.Received(1).IncreaseBy(Mathf.Min(transferableQuantity, pickUpStepQuantity), true);
    }
    public void CheckAndIncrementPickUpQuantity_ThisIITAMIsNotInPickedUpState_DoesNotCallPickedIIIncreaseBy(int transferableQuantity, int itemQuantity, int pickUpStepQuantity)
    {
        IItemIcon thisII;
        IItemIconTransactionManager   thisIITAM;
        IPickUpSystemUIElementFactory thisUIEFactory;
        ItemIconPickUpImplementor     implementor = CreateIIPUImplementor(transferableQuantity, itemQuantity, pickUpStepQuantity, out thisII, out thisIITAM, out thisUIEFactory);

        thisIITAM.IsInPickedUpState().Returns(false);
        IItemIcon pickedII = Substitute.For <IItemIcon>();

        thisIITAM.GetPickedII().Returns(pickedII);

        implementor.CheckAndIncrementPickUpQuantity();

        pickedII.DidNotReceive().IncreaseBy(Arg.Any <int>(), Arg.Any <bool>());
    }