mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-21 18:18:05 +01:00
Remove messages from the cache in bulk.
This commit is contained in:
committed by
Jon Chambers
parent
fc71ced660
commit
c7230ccbb0
@@ -24,6 +24,7 @@ import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -113,6 +114,39 @@ public class MessagesCacheTest extends AbstractRedisClusterTest {
|
||||
assertEquals(MessagesCache.constructEntityFromEnvelope(0, message), maybeRemovedMessage.get());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Parameters({"true", "false"})
|
||||
public void testRemoveBatchByUUID(final boolean sealedSender) {
|
||||
final int messageCount = 10;
|
||||
|
||||
final List<MessageProtos.Envelope> messagesToRemove = new ArrayList<>(messageCount);
|
||||
final List<MessageProtos.Envelope> messagesToPreserve = new ArrayList<>(messageCount);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
messagesToRemove.add(generateRandomMessage(UUID.randomUUID(), sealedSender));
|
||||
messagesToPreserve.add(generateRandomMessage(UUID.randomUUID(), sealedSender));
|
||||
}
|
||||
|
||||
assertEquals(Collections.emptyList(), messagesCache.remove(DESTINATION_UUID, DESTINATION_DEVICE_ID,
|
||||
messagesToRemove.stream().map(message -> UUID.fromString(message.getServerGuid())).collect(Collectors.toList())));
|
||||
|
||||
for (final MessageProtos.Envelope message : messagesToRemove) {
|
||||
messagesCache.insert(UUID.fromString(message.getServerGuid()), DESTINATION_UUID, DESTINATION_DEVICE_ID, message);
|
||||
}
|
||||
|
||||
for (final MessageProtos.Envelope message : messagesToPreserve) {
|
||||
messagesCache.insert(UUID.fromString(message.getServerGuid()), DESTINATION_UUID, DESTINATION_DEVICE_ID, message);
|
||||
}
|
||||
|
||||
final List<OutgoingMessageEntity> removedMessages = messagesCache.remove(DESTINATION_UUID, DESTINATION_DEVICE_ID,
|
||||
messagesToRemove.stream().map(message -> UUID.fromString(message.getServerGuid())).collect(Collectors.toList()));
|
||||
|
||||
assertEquals(messagesToRemove.stream().map(message -> MessagesCache.constructEntityFromEnvelope(0, message)).collect(Collectors.toList()),
|
||||
removedMessages);
|
||||
|
||||
assertEquals(messagesToPreserve, messagesCache.getMessagesToPersist(DESTINATION_UUID, DESTINATION_DEVICE_ID, messageCount));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Parameters({"true", "false"})
|
||||
public void testGetMessages(final boolean sealedSender) {
|
||||
|
||||
Reference in New Issue
Block a user