diff --git a/src/main/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensions.kt b/src/main/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensions.kt index 27b18b330..1e8f186ad 100644 --- a/src/main/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensions.kt +++ b/src/main/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensions.kt @@ -256,16 +256,34 @@ fun ReactiveStreamOperations.reverseRan * @author Sebastien Deleuze * @since 2.2 */ -inline fun ReactiveStreamOperations.reverseRangeWithTypeAsFlow(key: K, range: Range, limit: Limit = Limit.unlimited()): Flow> = - reverseRange(V::class.java, key, range, limit).asFlow() +inline fun ReactiveStreamOperations.reverseRangeWithTypeAsFlow( + key: K, + range: Range, + limit: Limit = Limit.unlimited() +): Flow> = + reverseRange(V::class.java, key, range, limit).asFlow() /** * Coroutines variant of [ReactiveStreamOperations.trim]. * - * @author Mark Paluch - * @author Quantum64@github - * @since 2.2 + * @author Quantum64 + * @since 2.7.4 */ -@JvmOverloads // Maintain compatibility with versions <= 2.6.0 -suspend fun ReactiveStreamOperations.trimAndAwait(key: K, count: Long, approximateTrimming: Boolean = false): Long = - trim(key, count, approximateTrimming).awaitSingle() +suspend fun ReactiveStreamOperations.trimAndAwait( + key: K, + count: Long +): Long = + trim(key, count).awaitSingle() + +/** + * Coroutines variant of [ReactiveStreamOperations.trim]. + * + * @author Quantum64 + * @since 2.7.4 + */ +suspend fun ReactiveStreamOperations.trimAndAwait( + key: K, + count: Long, + approximateTrimming: Boolean +): Long = + trim(key, count, approximateTrimming).awaitSingle() diff --git a/src/test/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensionsUnitTests.kt b/src/test/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensionsUnitTests.kt index 14a2ed8aa..7c8933f96 100644 --- a/src/test/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensionsUnitTests.kt +++ b/src/test/kotlin/org/springframework/data/redis/core/ReactiveStreamOperationsExtensionsUnitTests.kt @@ -492,4 +492,19 @@ class ReactiveStreamOperationsExtensionsUnitTests { operations.trim("foo", 1) } } + + @Test // GH-2227 + fun trimApproximate() { + + val operations = mockk>() + every { operations.trim(any(), any(), any()) } returns Mono.just(1) + + runBlocking { + assertThat(operations.trimAndAwait("foo", 1, true)).isEqualTo(1) + } + + verify { + operations.trim("foo", 1, true) + } + } }