|
26 | 26 | /**
|
27 | 27 | * @author Tomaz Fernandes
|
28 | 28 | * @author Gary Russell
|
| 29 | + * @author Aftab Shaikh |
29 | 30 | * @since 1.3.3
|
30 | 31 | */
|
31 | 32 | public class BackOffPolicyBuilderTests {
|
@@ -109,4 +110,77 @@ public void shouldCreateExponentialRandomBackOff() {
|
109 | 110 | assertThat(new DirectFieldAccessor(policy).getPropertyValue("sleeper")).isEqualTo(mockSleeper);
|
110 | 111 | }
|
111 | 112 |
|
| 113 | + @Test |
| 114 | + public void shouldCreateExponentialRandomBackOffWhenProvidedRandomSupplier() { |
| 115 | + Sleeper mockSleeper = mock(Sleeper.class); |
| 116 | + BackOffPolicy backOffPolicy = BackOffPolicyBuilder.newBuilder() |
| 117 | + .delay(10000) |
| 118 | + .maxDelay(100000) |
| 119 | + .multiplier(10) |
| 120 | + .randomSupplier(() -> true) |
| 121 | + .sleeper(mockSleeper) |
| 122 | + .build(); |
| 123 | + |
| 124 | + assertThat(ExponentialRandomBackOffPolicy.class.isAssignableFrom(backOffPolicy.getClass())).isTrue(); |
| 125 | + ExponentialRandomBackOffPolicy policy = (ExponentialRandomBackOffPolicy) backOffPolicy; |
| 126 | + assertThat(policy.getInitialInterval()).isEqualTo(10000); |
| 127 | + assertThat(policy.getMaxInterval()).isEqualTo(100000); |
| 128 | + assertThat(policy.getMultiplier()).isEqualTo(10); |
| 129 | + } |
| 130 | + |
| 131 | + @Test |
| 132 | + public void shouldCreateExponentialRandomBackOffWithProvidedSuppliers() { |
| 133 | + Sleeper mockSleeper = mock(Sleeper.class); |
| 134 | + BackOffPolicy backOffPolicy = BackOffPolicyBuilder.newBuilder() |
| 135 | + .delaySupplier(() -> 10000L) |
| 136 | + .maxDelaySupplier(() -> 100000L) |
| 137 | + .multiplierSupplier(() -> 10d) |
| 138 | + .randomSupplier(() -> true) |
| 139 | + .sleeper(mockSleeper) |
| 140 | + .build(); |
| 141 | + |
| 142 | + assertThat(ExponentialRandomBackOffPolicy.class.isAssignableFrom(backOffPolicy.getClass())).isTrue(); |
| 143 | + ExponentialRandomBackOffPolicy policy = (ExponentialRandomBackOffPolicy) backOffPolicy; |
| 144 | + assertThat(policy.getInitialInterval()).isEqualTo(10000); |
| 145 | + assertThat(policy.getMaxInterval()).isEqualTo(100000); |
| 146 | + assertThat(policy.getMultiplier()).isEqualTo(10); |
| 147 | + } |
| 148 | + |
| 149 | + @Test |
| 150 | + public void shouldCreateExponentialBackOffWhenProvidedRandomSupplier() { |
| 151 | + Sleeper mockSleeper = mock(Sleeper.class); |
| 152 | + BackOffPolicy backOffPolicy = BackOffPolicyBuilder.newBuilder() |
| 153 | + .delay(100) |
| 154 | + .maxDelay(1000) |
| 155 | + .multiplier(2) |
| 156 | + .randomSupplier(() -> false) |
| 157 | + .sleeper(mockSleeper) |
| 158 | + .build(); |
| 159 | + assertThat(backOffPolicy instanceof ExponentialRandomBackOffPolicy).isFalse(); |
| 160 | + assertThat(ExponentialBackOffPolicy.class.isAssignableFrom(backOffPolicy.getClass())).isTrue(); |
| 161 | + ExponentialBackOffPolicy policy = (ExponentialBackOffPolicy) backOffPolicy; |
| 162 | + assertThat(policy.getInitialInterval()).isEqualTo(100); |
| 163 | + assertThat(policy.getMaxInterval()).isEqualTo(1000); |
| 164 | + assertThat(policy.getMultiplier()).isEqualTo(2); |
| 165 | + } |
| 166 | + |
| 167 | + @Test |
| 168 | + public void shouldCreateExponentialBackOffWithProvidedSuppliers() { |
| 169 | + Sleeper mockSleeper = mock(Sleeper.class); |
| 170 | + BackOffPolicy backOffPolicy = BackOffPolicyBuilder.newBuilder() |
| 171 | + .delaySupplier(() -> 10000L) |
| 172 | + .maxDelaySupplier(() -> 100000L) |
| 173 | + .multiplierSupplier(() -> 10d) |
| 174 | + .randomSupplier(() -> false) |
| 175 | + .sleeper(mockSleeper) |
| 176 | + .build(); |
| 177 | + |
| 178 | + assertThat(backOffPolicy instanceof ExponentialRandomBackOffPolicy).isFalse(); |
| 179 | + assertThat(ExponentialBackOffPolicy.class.isAssignableFrom(backOffPolicy.getClass())).isTrue(); |
| 180 | + ExponentialBackOffPolicy policy = (ExponentialBackOffPolicy) backOffPolicy; |
| 181 | + assertThat(policy.getInitialInterval()).isEqualTo(10000); |
| 182 | + assertThat(policy.getMaxInterval()).isEqualTo(100000); |
| 183 | + assertThat(policy.getMultiplier()).isEqualTo(10); |
| 184 | + } |
| 185 | + |
112 | 186 | }
|
0 commit comments