Skip to content

Commit

Permalink
changed RateLimiterTest close cancels the timer to use reflection
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanosiano committed Jan 23, 2025
1 parent 467b52b commit f5772f0
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions sentry/src/test/java/io/sentry/transport/RateLimiterTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ import io.sentry.hints.DiskFlushNotification
import io.sentry.protocol.SentryId
import io.sentry.protocol.SentryTransaction
import io.sentry.protocol.User
import io.sentry.test.getProperty
import io.sentry.test.injectForField
import io.sentry.util.HintUtils
import org.awaitility.kotlin.await
import org.mockito.kotlin.eq
Expand All @@ -38,6 +40,7 @@ import org.mockito.kotlin.verify
import org.mockito.kotlin.verifyNoMoreInteractions
import org.mockito.kotlin.whenever
import java.io.File
import java.util.Timer
import java.util.UUID
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
Expand Down Expand Up @@ -363,19 +366,10 @@ class RateLimiterTest {
@Test
fun `close cancels the timer`() {
val rateLimiter = fixture.getSUT()
whenever(fixture.currentDateProvider.currentTimeMillis).thenReturn(0, 1, 2001)

val applied = CountDownLatch(1)
var activeForReplay = false
rateLimiter.addRateLimitObserver {
applied.countDown()
activeForReplay = rateLimiter.isActiveForCategory(Replay)
}

rateLimiter.updateRetryAfterLimits("1:replay:key", null, 1)
val timer = mock<Timer>()
rateLimiter.injectForField("timer", timer)
rateLimiter.close()

applied.await(2, TimeUnit.SECONDS)
assertTrue(activeForReplay)
verify(timer).cancel()
assertNull(rateLimiter.getProperty("timer"))
}
}

0 comments on commit f5772f0

Please sign in to comment.