public void TestRateLimitMultipleEndPoints() { LimFxRateLimitAttribute.Init(1000, 3000); httpCtxMock.Setup(ctx => ctx.Request.Path).Returns(new PathString("/demo")); connectionInfoMock.Setup(i => i.RemoteIpAddress).Returns(System.Net.IPAddress.Parse("127.0.0.1")); var rt = new LimFxRateLimitAttribute(3); for (int i = 0; i < 3; i++) { rt.OnActionExecuting(ctx127); } httpCtxMock.Setup(ctx => ctx.Request.Path).Returns(new PathString("/demo1")); rt.OnActionExecuting(ctx127); }
public async Task TestRateLimitMultipleUser() { LimFxRateLimitAttribute.Init(1000, 3000); connectionInfoMock.Setup(i => i.RemoteIpAddress).Returns(System.Net.IPAddress.Parse("127.0.0.1")); var rt = new LimFxRateLimitAttribute(3); for (int i = 0; i < 3; i++) { rt.OnActionExecuting(ctx127); } Assert.ThrowsException <_429Exception>(() => rt.OnActionExecuting(ctx127)); await Task.Delay(1500); Assert.ThrowsException <_429Exception>(() => rt.OnActionExecuting(ctx127)); connectionInfoMock.Setup(i => i.RemoteIpAddress).Returns(System.Net.IPAddress.Parse("127.0.0.2")); rt.OnActionExecuting(ctx127); }