public void TryRemoveReputation_ShouldGetTimeoutAfterRemovingReputation()
        {
            _dateTimeMock.Setup(dt => dt.Now).Returns(DateTime.Now);

            var peterHasTimeout = _repProvider.CanRemoveReputation(_users.Peter, _users.Senne);

            _repProvider.RemoveReputation(_users.Peter, _users.Senne);
            var peterHasTimeoutAgain = _repProvider.CanRemoveReputation(_users.Peter, _users.Senne);
            var senneHasTimeout      = _repProvider.CanRemoveReputation(_users.Senne, _users.Peter);

            Assert.False(peterHasTimeout);
            Assert.True(peterHasTimeoutAgain);
            Assert.False(senneHasTimeout);
        }
Example #2
0
        public async Task RemoveReputationAsync(MiunieUser invoker, MiunieUser target, MiunieChannel c)
        {
            if (invoker.UserId == target.UserId)
            {
                await _discordMessages.SendMessageAsync(c, PhraseKey.CANNOT_SELF_REP, invoker.Name);

                return;
            }

            if (_reputationProvider.CanRemoveReputation(invoker, target))
            {
                return;
            }

            _reputationProvider.RemoveReputation(invoker, target);

            if (_miunieDiscord.UserIsMiunie(target))
            {
                await _discordMessages.SendMessageAsync(c, PhraseKey.REPUTATION_TAKEN_BOT, invoker.Name);

                return;
            }

            await _discordMessages.SendMessageAsync(c, PhraseKey.REPUTATION_TAKEN, invoker.Name, target.Name);
        }