Get authoritative profile keys from group changes only.

This commit is contained in:
Alan Evans
2020-08-03 16:12:02 -03:00
committed by Greyson Parrelli
parent 17c0364eda
commit 26868ae668
6 changed files with 425 additions and 135 deletions

View File

@@ -1,5 +1,8 @@
package org.thoughtcrime.securesms.testutil;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.thoughtcrime.securesms.logging.Log;
import java.util.ArrayList;
@@ -95,4 +98,46 @@ public final class LogRecorder extends Log.Logger {
return throwable;
}
}
@SafeVarargs
public static <T> Matcher<T> hasMessages(T... messages) {
return new BaseMatcher<T>() {
@Override
public void describeTo(Description description) {
description.appendValueList("[", ", ", "]", messages);
}
@Override
public void describeMismatch(Object item, Description description) {
@SuppressWarnings("unchecked")
List<Entry> list = (List<Entry>) item;
ArrayList<String> messages = new ArrayList<>(list.size());
for (Entry e : list) {
messages.add(e.message);
}
description.appendText("was ").appendValueList("[", ", ", "]", messages);
}
@Override
public boolean matches(Object item) {
@SuppressWarnings("unchecked")
List<Entry> list = (List<Entry>) item;
if (list.size() != messages.length) {
return false;
}
for (int i = 0; i < messages.length; i++) {
if (!list.get(i).message.equals(messages[i])) {
return false;
}
}
return true;
}
};
}
}