This is an automated email from the ASF dual-hosted git repository. jhelou pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push: new dfe880d17d JAMES-3693 Adapt Redis configuration change for Kvrocks tests dfe880d17d is described below commit dfe880d17d7f74859a9643c9378fff1d7821694e Author: Quan Tran <hqt...@linagora.com> AuthorDate: Wed Apr 2 15:06:36 2025 +0700 JAMES-3693 Adapt Redis configuration change for Kvrocks tests --- .../rate/limiter/KvrocksRateLimiterTest.scala | 2 +- .../limiter/KvrocksSentinelRateLimiterTest.scala | 25 +++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksRateLimiterTest.scala b/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksRateLimiterTest.scala index 16b1fc3bff..64abc6b72e 100644 --- a/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksRateLimiterTest.scala +++ b/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksRateLimiterTest.scala @@ -38,7 +38,7 @@ class KvrocksRateLimiterTest extends RateLimiterContract { redisRateLimiterConfiguration = StandaloneRedisConfiguration.from(kvrocks.redisURI().toString) } - override def testee(): RateLimiterFactory = new RedisRateLimiterFactory(redisRateLimiterConfiguration, new RedisClientFactory(FileSystemImpl.forTesting())) + override def testee(): RateLimiterFactory = new RedisRateLimiterFactory(redisRateLimiterConfiguration, new RedisClientFactory(FileSystemImpl.forTesting(), redisRateLimiterConfiguration)) override def sleep(duration: Duration): Unit = Thread.sleep(duration.toMillis) } diff --git a/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksSentinelRateLimiterTest.scala b/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksSentinelRateLimiterTest.scala index f50ba54918..8152596c89 100644 --- a/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksSentinelRateLimiterTest.scala +++ b/server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/KvrocksSentinelRateLimiterTest.scala @@ -33,7 +33,7 @@ import org.apache.james.server.core.filesystem.FileSystemImpl import org.assertj.core.api.Assertions.{assertThat, assertThatCode} import org.awaitility.Awaitility import org.junit.jupiter.api.extension.ExtendWith -import org.junit.jupiter.api.{AfterEach, Test} +import org.junit.jupiter.api.{AfterEach, BeforeEach, Test} import reactor.core.scala.publisher.SMono object KvrocksSentinelRateLimiterTest { @@ -43,6 +43,15 @@ object KvrocksSentinelRateLimiterTest { @ExtendWith(Array(classOf[KvrocksSentinelExtension])) class KvrocksSentinelRateLimiterTest { + var rateLimiter: RateLimiter = _ + + @BeforeEach + def setUp(kvrocksSentinel: KvrocksSentinel): Unit = { + val redisConfiguration = kvrocksSentinel.redisSentinelContainerList.getRedisConfiguration + val rateLimiterFactory: RedisRateLimiterFactory = new RedisRateLimiterFactory(redisConfiguration, + new RedisClientFactory(FileSystemImpl.forTesting(), redisConfiguration)) + rateLimiter = rateLimiterFactory.withSpecification(RULES, SLIDING_WIDOW_PRECISION) + } @AfterEach def afterEach(kvrocksSentinel: KvrocksSentinel): Unit = { @@ -51,29 +60,19 @@ class KvrocksSentinelRateLimiterTest { } @Test - def rateLimitShouldBeAcceptableWhenLimitIsAcceptable(kvrocksSentinel: KvrocksSentinel): Unit = { - val rateLimiterFactory: RedisRateLimiterFactory = new RedisRateLimiterFactory(kvrocksSentinel.redisSentinelContainerList.getRedisConfiguration, - new RedisClientFactory(FileSystemImpl.forTesting())) - val rateLimiter = rateLimiterFactory.withSpecification(RULES, SLIDING_WIDOW_PRECISION) + def rateLimitShouldBeAcceptableWhenLimitIsAcceptable(): Unit = { val actual: RateLimitingResult = SMono(rateLimiter.rateLimit(TestKey("key" + UUID.randomUUID().toString), 4)).block() assertThat(actual).isEqualTo(AcceptableRate) } @Test - def rateLimitShouldWorkNormallyWhenLimitExceeded(kvrocksSentinel: KvrocksSentinel): Unit = { - val rateLimiterFactory: RedisRateLimiterFactory = new RedisRateLimiterFactory(kvrocksSentinel.redisSentinelContainerList.getRedisConfiguration, - new RedisClientFactory(FileSystemImpl.forTesting())) - val rateLimiter = rateLimiterFactory.withSpecification(RULES, SLIDING_WIDOW_PRECISION) + def rateLimitShouldWorkNormallyWhenLimitExceeded(): Unit = { val actual: RateLimitingResult = SMono(rateLimiter.rateLimit(TestKey("key" + UUID.randomUUID().toString), 5)).block() assertThat(actual).isEqualTo(RateExceeded) } @Test def rateLimitShouldWorkNormallyAfterFailoverComplete(kvrocksSentinel: KvrocksSentinel): Unit = { - val rateLimiterFactory: RedisRateLimiterFactory = new RedisRateLimiterFactory(kvrocksSentinel.redisSentinelContainerList.getRedisConfiguration, - new RedisClientFactory(FileSystemImpl.forTesting())) - val rateLimiter = rateLimiterFactory.withSpecification(RULES, SLIDING_WIDOW_PRECISION) - // Before failover, the rate limit should be working normally assertThat(SMono(rateLimiter.rateLimit(TestKey("key" + UUID.randomUUID().toString), 5)).block()) .isEqualTo(RateExceeded) --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org