Make thread related utility methods available for use in all modules.

This commit is contained in:
Cody Henthorne
2021-03-01 15:44:33 -05:00
parent 38caf1e2b7
commit dc9b8169c0
47 changed files with 228 additions and 224 deletions

View File

@@ -1,6 +1,6 @@
package org.thoughtcrime.securesms.testutil;
import org.thoughtcrime.securesms.util.Util;
import org.signal.core.util.ThreadUtil;
import static org.mockito.Mockito.when;
import static org.powermock.api.mockito.PowerMockito.doCallRealMethod;
@@ -12,17 +12,17 @@ public final class MainThreadUtil {
}
/**
* Makes {@link Util}'s Main thread assertions pass or fail during tests.
* Makes {@link ThreadUtil}'s Main thread assertions pass or fail during tests.
* <p>
* Use with {@link org.powermock.modules.junit4.PowerMockRunner} or robolectric with powermock
* rule and {@code @PrepareForTest(Util.class)}
*/
public static void setMainThread(boolean isMainThread) {
mockStatic(Util.class);
when(Util.isMainThread()).thenReturn(isMainThread);
mockStatic(ThreadUtil.class);
when(ThreadUtil.isMainThread()).thenReturn(isMainThread);
try {
doCallRealMethod().when(Util.class, "assertMainThread");
doCallRealMethod().when(Util.class, "assertNotMainThread");
doCallRealMethod().when(ThreadUtil.class, "assertMainThread");
doCallRealMethod().when(ThreadUtil.class, "assertNotMainThread");
} catch (Exception e) {
throw new AssertionError();
}