Add a method to build an OutgoingMessageEntity from an Envelope

This commit is contained in:
Jon Chambers
2022-07-27 16:32:41 -04:00
committed by Jon Chambers
parent d385838dc1
commit 3e0919106d
2 changed files with 68 additions and 3 deletions

View File

@@ -0,0 +1,50 @@
/*
* Copyright 2013-2022 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.entities;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.whispersystems.textsecuregcm.storage.Device;
class OutgoingMessageEntityTest {
@ParameterizedTest
@MethodSource
void toFromEnvelope(@Nullable final String source, @Nullable final UUID sourceUuid, @Nullable final UUID updatedPni) {
final byte[] messageContent = new byte[16];
new Random().nextBytes(messageContent);
final long messageTimestamp = System.currentTimeMillis();
final long serverTimestamp = messageTimestamp + 17;
final OutgoingMessageEntity outgoingMessageEntity = new OutgoingMessageEntity(UUID.randomUUID(),
MessageProtos.Envelope.Type.CIPHERTEXT_VALUE,
messageTimestamp,
"+18005551234",
UUID.randomUUID(),
source != null ? (int) Device.MASTER_ID : 0,
UUID.randomUUID(),
UUID.randomUUID(),
messageContent,
serverTimestamp);
assertEquals(outgoingMessageEntity, OutgoingMessageEntity.fromEnvelope(outgoingMessageEntity.toEnvelope()));
}
private static Stream<Arguments> toFromEnvelope() {
return Stream.of(
Arguments.of("+18005551234", UUID.randomUUID(), UUID.randomUUID()),
Arguments.of("+18005551234", UUID.randomUUID(), null),
Arguments.of(null, null, UUID.randomUUID()));
}
}