public void AllowRequestWhenMovingAverageLimitHasNotBeenTriggered() { // Arrange var strategy = new MovingAverage(new MovingAverageConfig(10000, 1000)); DateTime firstRequestTime = DateTime.Now; strategy.IsAllowed(firstRequestTime); // Act bool isAllowed = strategy.IsAllowed(firstRequestTime.AddMilliseconds(100)); // Assert Assert.That(isAllowed, Is.True); }
public void DisAllowRequestWhenMovingAverageLimitHasBeenTriggered() { // Arrange var strategy = new MovingAverage(new MovingAverageConfig(10000, 1000)); DateTime firstRequestTime = DateTime.Now; strategy.IsAllowed(firstRequestTime); const int maxRequests = 10; for (int i = 0; i < maxRequests; i++) { strategy.IsAllowed(firstRequestTime.AddMilliseconds((i * 100) + 100)); } // Act bool isAllowed = strategy.IsAllowed(firstRequestTime.AddMilliseconds((maxRequests * 100) + 100)); // Assert Assert.That(isAllowed, Is.False); }
public void AllowTheFirstRequestItReceives() { // Arrange var strategy = new MovingAverage(new MovingAverageConfig(10000, 1000)); // Act bool isAllowed = strategy.IsAllowed(DateTime.Now); // Assert Assert.That(isAllowed, Is.True); }