|
36 | 36 | import java.util.Optional; |
37 | 37 | import java.util.Random; |
38 | 38 | import java.util.UUID; |
| 39 | +import java.util.concurrent.TimeUnit; |
39 | 40 |
|
| 41 | +import static org.awaitility.Awaitility.await; |
40 | 42 | import static org.hamcrest.MatcherAssert.assertThat; |
41 | 43 | import static org.hamcrest.Matchers.equalTo; |
42 | 44 | import static org.hamcrest.Matchers.greaterThanOrEqualTo; |
@@ -265,8 +267,16 @@ void tryAcquireAvailablePartition_gets_first_unassigned_partition() { |
265 | 267 | objectUnderTest.tryCreatePartitionItem(sourceIdentifier, |
266 | 268 | unassignedPartitionKey3, SourcePartitionStatus.UNASSIGNED, 1L, partitionProgressState, false); |
267 | 269 |
|
268 | | - final Optional<SourcePartitionStoreItem> maybeAcquired = |
269 | | - objectUnderTest.tryAcquireAvailablePartition(sourceIdentifier, ownerId, Duration.ofSeconds(20)); |
| 270 | + // Wait for partition to be available in DynamoDB Local before attempting to acquire |
| 271 | + final Optional<SourcePartitionStoreItem>[] maybeAcquiredHolder = new Optional[]{Optional.empty()}; |
| 272 | + await().atMost(5, TimeUnit.SECONDS) |
| 273 | + .pollInterval(100, TimeUnit.MILLISECONDS) |
| 274 | + .untilAsserted(() -> { |
| 275 | + maybeAcquiredHolder[0] = objectUnderTest.tryAcquireAvailablePartition(sourceIdentifier, ownerId, Duration.ofSeconds(20)); |
| 276 | + assertThat(maybeAcquiredHolder[0].isPresent(), equalTo(true)); |
| 277 | + }); |
| 278 | + |
| 279 | + final Optional<SourcePartitionStoreItem> maybeAcquired = maybeAcquiredHolder[0]; |
270 | 280 |
|
271 | 281 | assertThat(maybeAcquired, notNullValue()); |
272 | 282 | assertThat(maybeAcquired.isPresent(), equalTo(true)); |
|
0 commit comments