示例#1
0
        public void ReturnEmptyCollection_GivenNoCommandsUsed()
        {
            var tracker = new CommandCooldownTracker(new CommandHandlerSettings(), _loggerAdapter);

            var usages = tracker.GetUsagesByUserSubjectToCooldown(_testUser1, DateTimeOffset.UtcNow);

            usages.Should().BeEmpty();
        }
示例#2
0
        private static CommandHandler GetTestCommandHandler(FakeCommand fakeCommand)
        {
            var commandUsageTracker = new CommandCooldownTracker(new CommandHandlerSettings());
            var chatClients         = new List <IChatClient> {
                new Mock <IChatClient>().Object
            };
            var commandMessages = new List <IBotCommand> {
                fakeCommand
            };
            var commandHandler = new CommandHandler(new Mock <IRepository>().Object, commandUsageTracker, chatClients, new CommandList(commandMessages));

            return(commandHandler);
        }
示例#3
0
        public void ReturnSingleItem_GivenOneRecentCommandUsage()
        {
            var tracker = new CommandCooldownTracker(new CommandHandlerSettings {
                GlobalCommandCooldown = 1
            }, _loggerAdapter);
            DateTimeOffset currentTime = DateTimeOffset.UtcNow;

            tracker.RecordUsage(new CommandUsage(_testUser1, currentTime, null));

            var usages = tracker.GetUsagesByUserSubjectToCooldown(_testUser1, currentTime);

            usages.Should().HaveCount(1);
        }
示例#4
0
        public void ReturnEmptyCollection_GivenOneOldCommandUsage()
        {
            var tracker = new CommandCooldownTracker(new CommandHandlerSettings {
                GlobalCommandCooldown = 1
            }, _loggerAdapter);
            DateTimeOffset currentTime         = DateTimeOffset.UtcNow;
            DateTimeOffset timeUsageWasInvoked = currentTime.AddSeconds(-2);

            tracker.RecordUsage(new CommandUsage(_testUser1, timeUsageWasInvoked, null));

            var usages = tracker.GetUsagesByUserSubjectToCooldown(_testUser1, currentTime);

            usages.Should().BeEmpty();
        }