View Javadoc
1   package com.github.davidmoten.aws.lw.client.internal;
2   
3   import static org.junit.Assert.assertFalse;
4   import static org.junit.Assert.assertTrue;
5   
6   import java.io.IOException;
7   import java.io.UncheckedIOException;
8   
9   import org.junit.Test;
10  
11  public class RetriesTest {
12  
13      @Test(expected = IllegalArgumentException.class)
14      public void testBadJitter() {
15          double jitter = -1;
16          new Retries<Void>(100, 10, 2.0, jitter, 30000, x -> false, x -> false);
17      }
18  
19      @Test(expected = IllegalArgumentException.class)
20      public void testBadJitter2() {
21          double jitter = 2;
22          new Retries<Void>(100, 10, 2.0, jitter, 30000, x -> false, x -> false);
23      }
24  
25      @Test(expected = OutOfMemoryError.class)
26      public void testRethrowError() {
27          Retries.rethrow(new OutOfMemoryError());
28      }
29  
30      @Test(expected = NullPointerException.class)
31      public void testRethrowRuntimeError() {
32          Retries.rethrow(new NullPointerException());
33      }
34  
35      @Test(expected = UncheckedIOException.class)
36      public void testRethrowIOException() {
37          Retries.rethrow(new IOException());
38      }
39  
40      @Test(expected = RuntimeException.class)
41      public void testRethrowException() {
42          Retries.rethrow(new Exception());
43      }
44  
45      @Test
46      public void testNotYetReachedMaxAttempts() {
47          assertFalse(Retries.reachedMaxAttempts(1, 2));
48      }
49      
50      @Test
51      public void testReachedMaxAttemptsExactly() {
52          assertTrue(Retries.reachedMaxAttempts(2, 2));
53      }
54      
55      @Test
56      public void testExceededMaxAttempts() {
57          assertTrue(Retries.reachedMaxAttempts(3, 2));
58      }
59      
60      @Test
61      public void testUnlimitedAtempts() {
62          assertFalse(Retries.reachedMaxAttempts(3, 0));
63      }
64      
65  }