Strongly type UUIDs as ACIs.

This commit is contained in:
Greyson Parrelli
2021-10-28 15:39:36 -04:00
parent 6c7d837964
commit 5bb48caafd
120 changed files with 1020 additions and 947 deletions

View File

@@ -3,13 +3,13 @@ package org.thoughtcrime.securesms.contacts.sync;
import org.junit.Test;
import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.InputResult;
import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.OutputResult;
import org.whispersystems.signalservice.api.push.ACI;
import org.whispersystems.signalservice.api.util.UuidUtil;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -23,8 +23,8 @@ public class FuzzyPhoneNumberHelperTest {
private static final String MX_A = "+525512345678";
private static final String MX_A_1 = "+5215512345678";
private static final UUID UUID_A = UuidUtil.parseOrThrow("db980097-1e02-452f-9937-899630508705");
private static final UUID UUID_B = UuidUtil.parseOrThrow("11ccd6de-8fcc-49d6-bb9e-df21ff88bd6f");
private static final ACI ACI_A = ACI.parseOrThrow("db980097-1e02-452f-9937-899630508705");
private static final ACI ACI_B = ACI.parseOrThrow("11ccd6de-8fcc-49d6-bb9e-df21ff88bd6f");
@Test
public void generateInput_noMxNumbers() {
@@ -100,65 +100,65 @@ public class FuzzyPhoneNumberHelperTest {
@Test
public void generateOutput_noMxNumbers() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(US_A, UUID_A, US_B, UUID_B), new InputResult(setOf(US_A, US_B), Collections.emptyMap()));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(US_A, ACI_A, US_B, ACI_B), new InputResult(setOf(US_A, US_B), Collections.emptyMap()));
assertEquals(2, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(US_A));
assertEquals(UUID_B, result.getNumbers().get(US_B));
assertEquals(ACI_A, result.getNumbers().get(US_A));
assertEquals(ACI_B, result.getNumbers().get(US_B));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_bothMatch_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A, MX_A_1, UUID_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, ACI_A, MX_A_1, ACI_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
assertEquals(ACI_A, result.getNumbers().get(MX_A));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_bothMatch_1toNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A, MX_A_1, UUID_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, ACI_A, MX_A_1, ACI_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
assertEquals(ACI_A, result.getNumbers().get(MX_A));
assertEquals(MX_A, result.getRewrites().get(MX_A_1));
}
@Test
public void generateOutput_no1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, ACI_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
assertEquals(ACI_A, result.getNumbers().get(MX_A));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_no1Match_1ToNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, ACI_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
assertEquals(ACI_A, result.getNumbers().get(MX_A));
assertEquals(MX_A, result.getRewrites().get(MX_A_1));
}
@Test
public void generateOutput_1Match_1ToNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A_1, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A_1, ACI_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A_1));
assertEquals(ACI_A, result.getNumbers().get(MX_A_1));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A_1, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A_1, ACI_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A_1));
assertEquals(ACI_A, result.getNumbers().get(MX_A_1));
assertEquals(MX_A_1, result.getRewrites().get(MX_A));
}