Spaces:
Running
Running
Download src/test/java/com/resumeparser/config/RateLimitInterceptorTest.java from hari7775/resume-parser: direct link, hf CLI and curl.
- Browser
- Download file 2.96 kB
-
https://huggingface.co/spaces/hari7775/resume-parser/resolve/main/src/test/java/com/resumeparser/config/RateLimitInterceptorTest.java
- Command line
-
hf download hf://spaces/hari7775/resume-parser/src/test/java/com/resumeparser/config/RateLimitInterceptorTest.java
-
curl -L -o RateLimitInterceptorTest.java https://huggingface.co/spaces/hari7775/resume-parser/resolve/main/src/test/java/com/resumeparser/config/RateLimitInterceptorTest.java
2.96 kB
| package com.resumeparser.config; | |
| import com.resumeparser.service.FirestoreRateLimiterService; | |
| import org.junit.jupiter.api.BeforeEach; | |
| import org.junit.jupiter.api.Test; | |
| import org.springframework.mock.web.MockHttpServletRequest; | |
| import org.springframework.mock.web.MockHttpServletResponse; | |
| import static org.junit.jupiter.api.Assertions.*; | |
| import static org.mockito.Mockito.*; | |
| class RateLimitInterceptorTest { | |
| private FirestoreRateLimiterService rateLimiterService; | |
| private RateLimitInterceptor interceptor; | |
| void setUp() { | |
| rateLimiterService = mock(FirestoreRateLimiterService.class); | |
| interceptor = new RateLimitInterceptor(rateLimiterService); | |
| } | |
| void shouldAllowOptionsRequestsWithoutRateLimiting() throws Exception { | |
| MockHttpServletRequest request = new MockHttpServletRequest(); | |
| request.setMethod("OPTIONS"); | |
| MockHttpServletResponse response = new MockHttpServletResponse(); | |
| boolean result = interceptor.preHandle(request, response, new Object()); | |
| assertTrue(result); | |
| verifyNoInteractions(rateLimiterService); | |
| } | |
| void shouldAllowRequestWhenUnderLimit() throws Exception { | |
| MockHttpServletRequest request = new MockHttpServletRequest(); | |
| request.setMethod("POST"); | |
| request.setRemoteAddr("192.168.1.50"); | |
| MockHttpServletResponse response = new MockHttpServletResponse(); | |
| when(rateLimiterService.isAllowed("192.168.1.50")).thenReturn(true); | |
| boolean result = interceptor.preHandle(request, response, new Object()); | |
| assertTrue(result); | |
| assertEquals(200, response.getStatus()); | |
| } | |
| void shouldBlockRequestWith429WhenLimitExceeded() throws Exception { | |
| MockHttpServletRequest request = new MockHttpServletRequest(); | |
| request.setMethod("POST"); | |
| request.setRemoteAddr("192.168.1.50"); | |
| MockHttpServletResponse response = new MockHttpServletResponse(); | |
| when(rateLimiterService.isAllowed("192.168.1.50")).thenReturn(false); | |
| boolean result = interceptor.preHandle(request, response, new Object()); | |
| assertFalse(result); | |
| assertEquals(429, response.getStatus()); | |
| assertTrue(response.getContentAsString().contains("Too many requests")); | |
| } | |
| void shouldExtractIpFromXForwardedForHeader() throws Exception { | |
| MockHttpServletRequest request = new MockHttpServletRequest(); | |
| request.setMethod("POST"); | |
| request.addHeader("X-Forwarded-For", "203.0.113.195, 10.0.0.1"); | |
| request.setRemoteAddr("127.0.0.1"); | |
| MockHttpServletResponse response = new MockHttpServletResponse(); | |
| when(rateLimiterService.isAllowed("203.0.113.195")).thenReturn(true); | |
| boolean result = interceptor.preHandle(request, response, new Object()); | |
| assertTrue(result); | |
| verify(rateLimiterService).isAllowed("203.0.113.195"); | |
| } | |
| } | |