diff --git a/misk-redis/api/misk-redis.api b/misk-redis/api/misk-redis.api index 1cfe6a9abe1..3c0fc654f90 100644 --- a/misk-redis/api/misk-redis.api +++ b/misk-redis/api/misk-redis.api @@ -540,7 +540,7 @@ public final class misk/redis/testing/DockerRedisKt { public static synthetic fun main ([Ljava/lang/String;)V } -public final class misk/redis/testing/FakeRedis : misk/testing/FakeFixture, misk/redis/Redis { +public final class misk/redis/testing/FakeRedis : misk/redis/Redis, misk/testing/TestFixture { public fun (Ljava/time/Clock;Lkotlin/random/Random;)V public fun blmove (Ljava/lang/String;Ljava/lang/String;Lredis/clients/jedis/args/ListDirection;Lredis/clients/jedis/args/ListDirection;D)Lokio/ByteString; public fun brpoplpush (Ljava/lang/String;Ljava/lang/String;I)Lokio/ByteString; @@ -580,6 +580,7 @@ public final class misk/redis/testing/FakeRedis : misk/testing/FakeFixture, misk public fun pipelined ()Lredis/clients/jedis/Pipeline; public fun pipelining (Lkotlin/jvm/functions/Function1;)V public fun publish (Ljava/lang/String;Ljava/lang/String;)V + public fun reset ()V public fun rpop (Ljava/lang/String;)Lokio/ByteString; public fun rpop (Ljava/lang/String;I)Ljava/util/List; public fun rpoplpush (Ljava/lang/String;Ljava/lang/String;)Lokio/ByteString; diff --git a/misk-redis/src/testFixtures/kotlin/misk/redis/testing/FakeRedis.kt b/misk-redis/src/testFixtures/kotlin/misk/redis/testing/FakeRedis.kt index 9db2f835358..d64dfbc557d 100644 --- a/misk-redis/src/testFixtures/kotlin/misk/redis/testing/FakeRedis.kt +++ b/misk-redis/src/testFixtures/kotlin/misk/redis/testing/FakeRedis.kt @@ -25,7 +25,7 @@ import misk.redis.Redis.ZRangeMarker import misk.redis.Redis.ZRangeRankMarker import misk.redis.Redis.ZRangeScoreMarker import misk.redis.Redis.ZRangeType -import misk.testing.FakeFixture +import misk.testing.TestFixture import okio.ByteString.Companion.encodeUtf8 import org.apache.commons.io.FilenameUtils import java.util.SortedMap @@ -48,17 +48,15 @@ import kotlin.random.Random class FakeRedis @Inject constructor( private val clock: Clock, @ForFakeRedis private val random: Random, -) : Redis, FakeFixture() { +) : Redis, TestFixture { /** The value type stored in our key-value store. */ private data class Value(val data: T, var expiryInstant: Instant) /** Acts as the Redis key-value store. */ - private val keyValueStore by resettable { ConcurrentHashMap>() } + private val keyValueStore = ConcurrentHashMap>() /** A nested hash map for hash operations. */ - private val hKeyValueStore by resettable { - ConcurrentHashMap>>() - } + private val hKeyValueStore = ConcurrentHashMap>>() /** * Note: Redis sorted set actually orders by value. It is quite complex to implement it here. @@ -66,12 +64,17 @@ class FakeRedis @Inject constructor( * HashMap to key score->members. So any sorting based on values will have to be handled in the * implementation of the functions for this sorted set. */ - private val sortedSetKeyValueStore by resettable { - ConcurrentHashMap>>>() - } + private val sortedSetKeyValueStore = ConcurrentHashMap>>>() /** A hash map for list operations. */ - private val lKeyValueStore by resettable { ConcurrentHashMap>>() } + private val lKeyValueStore = ConcurrentHashMap>>() + + override fun reset() { + keyValueStore.clear() + hKeyValueStore.clear() + sortedSetKeyValueStore.clear() + lKeyValueStore.clear() + } @Synchronized override fun del(key: String): Boolean {