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 }