kopia lustrzana https://github.com/ryukoposting/Signal-Android
76 wiersze
2.4 KiB
Kotlin
76 wiersze
2.4 KiB
Kotlin
package org.thoughtcrime.securesms.database
|
|
|
|
import org.junit.Assert.assertEquals
|
|
import org.junit.Assert.assertTrue
|
|
import org.junit.Before
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.signal.core.util.CursorUtil
|
|
import org.thoughtcrime.securesms.conversationlist.model.ConversationFilter
|
|
import org.thoughtcrime.securesms.recipients.Recipient
|
|
import org.thoughtcrime.securesms.testing.SignalDatabaseRule
|
|
import org.whispersystems.signalservice.api.push.ServiceId
|
|
import java.util.UUID
|
|
|
|
@Suppress("ClassName")
|
|
class ThreadTableTest_pinned {
|
|
|
|
@Rule
|
|
@JvmField
|
|
val databaseRule = SignalDatabaseRule()
|
|
|
|
private lateinit var recipient: Recipient
|
|
|
|
@Before
|
|
fun setUp() {
|
|
recipient = Recipient.resolved(SignalDatabase.recipients.getOrInsertFromServiceId(ServiceId.from(UUID.randomUUID())))
|
|
}
|
|
|
|
@Test
|
|
fun givenAPinnedThread_whenIDeleteTheLastMessage_thenIDoNotDeleteOrUnpinTheThread() {
|
|
// GIVEN
|
|
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)
|
|
val messageId = MmsHelper.insert(recipient = recipient, threadId = threadId)
|
|
SignalDatabase.threads.pinConversations(listOf(threadId))
|
|
|
|
// WHEN
|
|
SignalDatabase.mms.deleteMessage(messageId)
|
|
|
|
// THEN
|
|
val pinned = SignalDatabase.threads.getPinnedThreadIds()
|
|
assertTrue(threadId in pinned)
|
|
}
|
|
|
|
@Test
|
|
fun givenAPinnedThread_whenIDeleteTheLastMessage_thenIExpectTheThreadInUnarchivedCount() {
|
|
// GIVEN
|
|
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)
|
|
val messageId = MmsHelper.insert(recipient = recipient, threadId = threadId)
|
|
SignalDatabase.threads.pinConversations(listOf(threadId))
|
|
|
|
// WHEN
|
|
SignalDatabase.mms.deleteMessage(messageId)
|
|
|
|
// THEN
|
|
val unarchivedCount = SignalDatabase.threads.getUnarchivedConversationListCount(ConversationFilter.OFF)
|
|
assertEquals(1, unarchivedCount)
|
|
}
|
|
|
|
@Test
|
|
fun givenAPinnedThread_whenIDeleteTheLastMessage_thenIExpectPinnedThreadInUnarchivedList() {
|
|
// GIVEN
|
|
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)
|
|
val messageId = MmsHelper.insert(recipient = recipient, threadId = threadId)
|
|
SignalDatabase.threads.pinConversations(listOf(threadId))
|
|
|
|
// WHEN
|
|
SignalDatabase.mms.deleteMessage(messageId)
|
|
|
|
// THEN
|
|
SignalDatabase.threads.getUnarchivedConversationList(ConversationFilter.OFF, true, 0, 1).use {
|
|
it.moveToFirst()
|
|
assertEquals(threadId, CursorUtil.requireLong(it, ThreadTable.ID))
|
|
}
|
|
}
|
|
}
|