diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountTest.java index 8076b3daf..f111a1b95 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/AccountTest.java @@ -114,6 +114,13 @@ class AccountTest { account.setDiscoverableByPhoneNumber(true); assertTrue(account.isDiscoverableByPhoneNumber()); + + final Account numberlessAccount = AccountsHelper.generateTestAccount(null, UUID.randomUUID(), null, List.of(recentPrimaryDevice), null); + assertFalse(numberlessAccount.isDiscoverableByPhoneNumber()); + + numberlessAccount.setDiscoverableByPhoneNumber(true); + assertFalse(numberlessAccount.isDiscoverableByPhoneNumber(), + "Accounts without phone numbers should never be discoverable by phone number"); } @Test @@ -126,15 +133,16 @@ class AccountTest { "1234".getBytes(StandardCharsets.UTF_8)).hasCapability(DeviceCapability.TRANSFER)); } + @Test void stale() { final Account account = AccountsHelper.generateTestAccount("+14151234567", UUID.randomUUID(), UUID.randomUUID(), Collections.emptyList(), new byte[0]); - assertDoesNotThrow(account::getNumber); + assertDoesNotThrow(account::getNumberOptional); account.markStale(); - assertThrows(AssertionError.class, account::getNumber); + assertThrows(AssertionError.class, account::getNumberOptional); assertDoesNotThrow(account::getAccountIdentifier); } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/AccountsHelper.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/AccountsHelper.java index b9df37f45..f4e96b402 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/AccountsHelper.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/AccountsHelper.java @@ -54,7 +54,6 @@ public class AccountsHelper { public static Account generateTestAccount(@Nullable String number, UUID uuid, final @Nullable UUID phoneNumberIdentifier, List devices, byte[] unidentifiedAccessKey) { return generateTestAccount(number, uuid, phoneNumberIdentifier, devices, unidentifiedAccessKey, TestRandomUtil.nextBytes(16)); - } public static Account generateTestAccount(@Nullable String number, UUID uuid, final @Nullable UUID phoneNumberIdentifier, List devices, byte[] unidentifiedAccessKey, final byte[] accountRecoveryPassword) {