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

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

            _repProvider.AddReputation(_users.Peter, _users.Senne);
            var peterHasTimeoutAgain = _repProvider.CanAddReputation(_users.Peter, _users.Senne);
            var senneHasTimeout      = _repProvider.CanAddReputation(_users.Senne, _users.Peter);

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

                return;
            }

            if (_reputationProvider.CanAddReputation(invoker, target))
            {
                _logger.Log($"User '{invoker.Name}' has a reputation timeout for User '{target.Name}', ignoring...");
                return;
            }

            _reputationProvider.AddReputation(invoker, target);

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

                return;
            }

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