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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]