public void ReturnEmptyCollection_GivenNoCommandsUsed() { var tracker = new CommandCooldownTracker(new CommandHandlerSettings(), _loggerAdapter); var usages = tracker.GetUsagesByUserSubjectToCooldown(_testUser1, DateTimeOffset.UtcNow); usages.Should().BeEmpty(); }
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); }
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); }
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(); }