mirror of
https://github.com/oxen-io/session-android.git
synced 2025-12-28 01:36:26 +00:00
Implement new CDS changes.
This commit is contained in:
@@ -3,15 +3,21 @@ 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.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.OutputResultV2;
|
||||
import org.whispersystems.signalservice.api.util.UuidUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import edu.emory.mathcs.backport.java.util.Arrays;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.thoughtcrime.securesms.testutil.TestHelpers.mapOf;
|
||||
|
||||
public class FuzzyPhoneNumberHelperTest {
|
||||
|
||||
@@ -21,6 +27,9 @@ 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");
|
||||
|
||||
@Test
|
||||
public void generateInput_noMxNumbers() {
|
||||
InputResult result = FuzzyPhoneNumberHelper.generateInput(setOf(US_A, US_B), setOf(US_A, US_B));
|
||||
@@ -156,6 +165,69 @@ public class FuzzyPhoneNumberHelperTest {
|
||||
assertEquals(MX_A_1, result.getRewrites().get(MX_A));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_noMxNumbers() {
|
||||
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(US_A, UUID_A, US_B, UUID_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));
|
||||
assertTrue(result.getRewrites().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_bothMatch_no1To1() {
|
||||
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(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)));
|
||||
|
||||
assertEquals(1, result.getNumbers().size());
|
||||
assertEquals(UUID_A, result.getNumbers().get(MX_A));
|
||||
assertTrue(result.getRewrites().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_bothMatch_1toNo1() {
|
||||
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(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)));
|
||||
|
||||
assertEquals(1, result.getNumbers().size());
|
||||
assertEquals(UUID_A, result.getNumbers().get(MX_A));
|
||||
assertEquals(MX_A, result.getRewrites().get(MX_A_1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_no1Match_no1To1() {
|
||||
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A, UUID_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));
|
||||
assertTrue(result.getRewrites().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_no1Match_1ToNo1() {
|
||||
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A, UUID_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(MX_A, result.getRewrites().get(MX_A_1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_1Match_1ToNo1() {
|
||||
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A_1, UUID_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));
|
||||
assertTrue(result.getRewrites().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generateOutputV2_1Match_no1To1() {
|
||||
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A_1), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
|
||||
|
||||
assertEquals(1, result.getNumbers().size());
|
||||
assertTrue(result.getNumbers().containsAll(setOf(MX_A_1)));
|
||||
assertEquals(MX_A_1, result.getRewrites().get(MX_A));
|
||||
}
|
||||
|
||||
private static <E> Set<E> setOf(E... values) {
|
||||
//noinspection unchecked
|
||||
|
||||
@@ -9,7 +9,9 @@ import org.whispersystems.libsignal.util.ByteUtil;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
@@ -58,4 +60,21 @@ public final class TestHelpers {
|
||||
assertEquals(a.size(), b.size());
|
||||
assertTrue(a.containsAll(b));
|
||||
}
|
||||
|
||||
public static <K, V> Map<K, V> mapOf() {
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
public static <K, V> Map<K, V> mapOf(K k, V v) {
|
||||
return new HashMap<K, V>() {{
|
||||
put(k, v);
|
||||
}};
|
||||
}
|
||||
|
||||
public static <K, V> Map<K, V> mapOf(K k1, V v1, K k2, V v2) {
|
||||
return new HashMap<K, V>() {{
|
||||
put(k1, v1);
|
||||
put(k2, v2);
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.Set;
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.thoughtcrime.securesms.testutil.TestHelpers.mapOf;
|
||||
|
||||
public class FeatureFlagsTest extends BaseUnitTest {
|
||||
|
||||
@@ -367,21 +368,4 @@ public class FeatureFlagsTest extends BaseUnitTest {
|
||||
private static <V> Set<V> setOf(V... values) {
|
||||
return new HashSet<>(Arrays.asList(values));
|
||||
}
|
||||
|
||||
private static <K, V> Map<K, V> mapOf() {
|
||||
return new HashMap<>();
|
||||
}
|
||||
|
||||
private static <K, V> Map<K, V> mapOf(K k, V v) {
|
||||
return new HashMap<K, V>() {{
|
||||
put(k, v);
|
||||
}};
|
||||
}
|
||||
|
||||
private static <K, V> Map<K, V> mapOf(K k1, V v1, K k2, V v2) {
|
||||
return new HashMap<K, V>() {{
|
||||
put(k1, v1);
|
||||
put(k2, v2);
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user