public void IgnoreNegativeWithdraws(int bits)
        {
            int balance = _bank.Deposit(_user, 100);

            (int result, int withdrawn) = _bank.Withdraw(_user, bits);

            result.Should().Be(balance);
            withdrawn.Should().Be(0);
        }
예제 #2
0
        public GilTransaction ProcessPayment(CommandData commandData, int amount, bool canModsOverride)
        {
            if (_unlocked && commandData.User.IsDevChatter)
            {
                return(new GilTransaction(true, 0));
            }

            int  gilSpent     = 0;
            bool requiresBits = !commandData.User.IsBroadcaster &&
                                !commandData.User.IsMe &&
                                (!canModsOverride || !commandData.User.IsMod);

            if (requiresBits)
            {
                (_, gilSpent) = _gilBank.Withdraw(commandData.User, amount, true);
                if (gilSpent < amount)
                {
                    _twitchClient.SendMessage(commandData.Channel,
                                              $"Sorry, '!{commandData.CommandText}' has a minimum gil cost of {amount}. Cheer for gil.");
                    return(new GilTransaction(false, gilSpent));
                }
            }

            return(new GilTransaction(true, gilSpent));
        }