Restore "may have messages" methods

This commit is contained in:
Jon Chambers
2025-08-27 13:20:17 -04:00
committed by Jon Chambers
parent f57093a94a
commit ebdc5a30f8
4 changed files with 70 additions and 0 deletions

View File

@@ -194,6 +194,17 @@ class MessagesCacheTest {
assertEquals(messagesToPreserve, get(DESTINATION_UUID, DESTINATION_DEVICE_ID, messageCount));
}
@Test
void testHasMessagesAsync() {
assertFalse(messagesCache.hasMessagesAsync(DESTINATION_UUID, DESTINATION_DEVICE_ID).join());
final UUID messageGuid = UUID.randomUUID();
final MessageProtos.Envelope message = generateRandomMessage(messageGuid, true);
messagesCache.insert(messageGuid, DESTINATION_UUID, DESTINATION_DEVICE_ID, message).join();
assertTrue(messagesCache.hasMessagesAsync(DESTINATION_UUID, DESTINATION_DEVICE_ID).join());
}
@Test
void getOldestTimestamp() {
final int messageCount = 100;

View File

@@ -12,6 +12,7 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -185,6 +186,31 @@ class MessagesManagerTest {
any());
}
@ParameterizedTest
@CsvSource({
"false, false, false",
"false, true, true",
"true, false, true",
"true, true, true"
})
void mayHaveMessages(final boolean hasCachedMessages, final boolean hasPersistedMessages, final boolean expectMayHaveMessages) {
final UUID accountIdentifier = UUID.randomUUID();
final Device device = mock(Device.class);
when(device.getId()).thenReturn(Device.PRIMARY_ID);
when(messagesCache.hasMessagesAsync(accountIdentifier, Device.PRIMARY_ID))
.thenReturn(CompletableFuture.completedFuture(hasCachedMessages));
when(messagesDynamoDb.mayHaveMessages(accountIdentifier, device))
.thenReturn(CompletableFuture.completedFuture(hasPersistedMessages));
if (hasCachedMessages) {
verifyNoInteractions(messagesDynamoDb);
}
assertEquals(expectMayHaveMessages, messagesManager.mayHaveMessages(accountIdentifier, device).join());
}
@ParameterizedTest
@CsvSource({
",,",