That fuck shit the fascists are using
at master 43 lines 1.3 kB view raw
1package org.tm.archive.testing 2 3import org.junit.rules.TestWatcher 4import org.junit.runner.Description 5import org.signal.core.util.deleteAll 6import org.tm.archive.database.SignalDatabase 7import org.tm.archive.database.ThreadTable 8import org.tm.archive.keyvalue.SignalStore 9import org.whispersystems.signalservice.api.push.ServiceId.ACI 10import org.whispersystems.signalservice.api.push.ServiceId.PNI 11import java.util.UUID 12 13/** 14 * Sets up bare-minimum to allow writing unit tests against the database, 15 * including setting up the local ACI and PNI pair. 16 * 17 * @param deleteAllThreadsOnEachRun Run deleteAllThreads between each unit test 18 */ 19class SignalDatabaseRule( 20 private val deleteAllThreadsOnEachRun: Boolean = true 21) : TestWatcher() { 22 23 val localAci: ACI = ACI.from(UUID.randomUUID()) 24 val localPni: PNI = PNI.from(UUID.randomUUID()) 25 26 override fun starting(description: Description?) { 27 deleteAllThreads() 28 29 SignalStore.account().setAci(localAci) 30 SignalStore.account().setPni(localPni) 31 } 32 33 override fun finished(description: Description?) { 34 deleteAllThreads() 35 } 36 37 private fun deleteAllThreads() { 38 if (deleteAllThreadsOnEachRun) { 39 SignalDatabase.threads.deleteAllConversations() 40 SignalDatabase.rawDatabase.deleteAll(ThreadTable.TABLE_NAME) 41 } 42 } 43}