Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }