@@ -42,23 +42,38 @@ void testScheduleRetry_defaultPolicy() {
4242
4343 assertTrue (retryHandler .scheduleRetry (runnable ));
4444
45- verify (scheduledExecutorService ).schedule (runnable , 1 , TimeUnit .SECONDS );
45+ verify (scheduledExecutorService ).schedule (runnable , 1000 , TimeUnit .MILLISECONDS );
4646 assertEquals (1 , retryHandler .getRetryCount ());
4747
4848 // second retry
4949 assertTrue (retryHandler .scheduleRetry (runnable ));
5050 assertEquals (2 , retryHandler .getRetryCount ());
51- verify (scheduledExecutorService ).schedule (runnable , 2 , TimeUnit .SECONDS );
51+ verify (scheduledExecutorService ).schedule (runnable , 2000 , TimeUnit .MILLISECONDS );
5252
5353 // third retry
5454 assertTrue (retryHandler .scheduleRetry (runnable ));
5555 assertEquals (3 , retryHandler .getRetryCount ());
56- verify (scheduledExecutorService ).schedule (runnable , 4 , TimeUnit .SECONDS );
56+ verify (scheduledExecutorService ).schedule (runnable , 4000 , TimeUnit .MILLISECONDS );
5757
5858 // fourth retry
5959 assertTrue (retryHandler .scheduleRetry (runnable ));
6060 assertEquals (4 , retryHandler .getRetryCount ());
61- verify (scheduledExecutorService ).schedule (runnable , 8 , TimeUnit .SECONDS );
61+ verify (scheduledExecutorService ).schedule (runnable , 8000 , TimeUnit .MILLISECONDS );
62+ }
63+
64+ @ Test
65+ void testScheduleRetry_subSecondDelay_usesMilliseconds () {
66+ Runnable runnable = () -> { };
67+ ExponentialBackoffPolicy exponentialBackoffPolicy = ExponentialBackoffPolicy .builder ()
68+ .initialDelay (Duration .ofMillis (250 ))
69+ .build ();
70+
71+ RetryHandler retryHandler = new RetryHandler (exponentialBackoffPolicy , scheduledExecutorService );
72+
73+ retryHandler .scheduleRetry (runnable );
74+
75+ verify (scheduledExecutorService ).schedule (runnable , 250 , TimeUnit .MILLISECONDS );
76+ assertEquals (1 , retryHandler .getRetryCount ());
6277 }
6378
6479 @ Test
@@ -70,18 +85,18 @@ void testScheduleRetry_maxRetries() {
7085
7186 assertTrue (retryHandler .scheduleRetry (runnable ));
7287
73- verify (scheduledExecutorService ).schedule (runnable , 1 , TimeUnit .SECONDS );
88+ verify (scheduledExecutorService ).schedule (runnable , 1000 , TimeUnit .MILLISECONDS );
7489 assertEquals (1 , retryHandler .getRetryCount ());
7590
7691 // second retry
7792 assertTrue (retryHandler .scheduleRetry (runnable ));
7893 assertEquals (2 , retryHandler .getRetryCount ());
79- verify (scheduledExecutorService ).schedule (runnable , 2 , TimeUnit .SECONDS );
94+ verify (scheduledExecutorService ).schedule (runnable , 2000 , TimeUnit .MILLISECONDS );
8095
8196 // third retry
8297 assertTrue (retryHandler .scheduleRetry (runnable ));
8398 assertEquals (3 , retryHandler .getRetryCount ());
84- verify (scheduledExecutorService ).schedule (runnable , 4 , TimeUnit .SECONDS );
99+ verify (scheduledExecutorService ).schedule (runnable , 4000 , TimeUnit .MILLISECONDS );
85100
86101 Mockito .reset (scheduledExecutorService );
87102
0 commit comments