1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.atlassian.fugue.retry;
17
18 import org.hamcrest.Matchers;
19 import org.junit.Test;
20
21 import static org.hamcrest.MatcherAssert.assertThat;
22 import static org.hamcrest.Matchers.is;
23
24 public class BeforeRetryLinearBackoffTaskTest {
25
26 @Test(expected = IllegalArgumentException.class) public void negativeSleep() {
27 new BeforeRetryLinearBackoffTask(-1);
28 }
29
30 @Test(expected = IllegalArgumentException.class) public void zeroSleep() {
31 new BeforeRetryLinearBackoffTask(0);
32 }
33
34 @Test public void sleep() {
35 BeforeRetryLinearBackoffTask beforeRetryLinearBackoffTask = new BeforeRetryLinearBackoffTask(1);
36
37 Thread.currentThread().interrupt();
38 try {
39 beforeRetryLinearBackoffTask.run();
40 } catch (RuntimeException e) {
41 Throwable cause = e.getCause();
42 assertThat(cause.getClass(), Matchers.<Class<? extends Throwable>> is(InterruptedException.class));
43 }
44 }
45
46 @Test public void backoffIncreases() {
47 BeforeRetryLinearBackoffTask beforeRetryLinearBackoffTask = new BeforeRetryLinearBackoffTask(1);
48
49 beforeRetryLinearBackoffTask.run();
50 assertThat(beforeRetryLinearBackoffTask.currentBackoff(), is(1L));
51 beforeRetryLinearBackoffTask.run();
52 assertThat(beforeRetryLinearBackoffTask.currentBackoff(), is(1L));
53 }
54 }