示例#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
        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);
        }
示例#3
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();
        }