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 }