mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
Add output of DeletionResult to deleteAllMessages call
This commit is contained in:
@@ -109,11 +109,11 @@ constructor(
|
||||
override fun deleteAllMessages(ctx: Context): Context {
|
||||
val contactId = ctx.getContactIdFromPathParam()
|
||||
try {
|
||||
conversationManager.deleteAllMessages(contactId)
|
||||
val result = conversationManager.deleteAllMessages(contactId)
|
||||
return ctx.json(result.output())
|
||||
} catch (e: NoSuchContactException) {
|
||||
throw NotFoundResponse()
|
||||
}
|
||||
return ctx
|
||||
}
|
||||
|
||||
override fun eventOccurred(e: Event) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import org.briarproject.bramble.api.sync.MessageId
|
||||
import org.briarproject.bramble.api.sync.event.MessagesAckedEvent
|
||||
import org.briarproject.bramble.api.sync.event.MessagesSentEvent
|
||||
import org.briarproject.briar.api.conversation.ConversationMessageHeader
|
||||
import org.briarproject.briar.api.conversation.DeletionResult
|
||||
import org.briarproject.briar.api.messaging.PrivateMessage
|
||||
import org.briarproject.briar.api.messaging.PrivateMessageHeader
|
||||
import org.briarproject.briar.headless.json.JsonDict
|
||||
@@ -47,6 +48,15 @@ internal fun PrivateMessage.output(contactId: ContactId, text: String) = JsonDic
|
||||
"text" to text
|
||||
)
|
||||
|
||||
internal fun DeletionResult.output() = JsonDict(
|
||||
"allDeleted" to allDeleted(),
|
||||
"hasIntroductionSessionInProgress" to hasIntroductionSessionInProgress(),
|
||||
"hasInvitationSessionInProgress" to hasInvitationSessionInProgress(),
|
||||
"hasNotAllIntroductionSelected" to hasNotAllIntroductionSelected(),
|
||||
"hasNotAllInvitationSelected" to hasNotAllInvitationSelected(),
|
||||
"hasNotFullyDownloaded" to hasNotFullyDownloaded()
|
||||
)
|
||||
|
||||
internal fun MessagesAckedEvent.output() = JsonDict(
|
||||
"contactId" to contactId.int,
|
||||
"messageIds" to messageIds.toJson()
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertThrows
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.spongycastle.util.encoders.Base64
|
||||
import kotlin.random.Random
|
||||
|
||||
internal class MessagingControllerImplTest : ControllerTest() {
|
||||
|
||||
@@ -346,8 +347,10 @@ internal class MessagingControllerImplTest : ControllerTest() {
|
||||
|
||||
@Test
|
||||
fun testDeleteAllMessages() {
|
||||
val result = DeletionResult()
|
||||
every { ctx.pathParam("contactId") } returns "1"
|
||||
every { conversationManager.deleteAllMessages(ContactId(1)) } returns DeletionResult()
|
||||
every { conversationManager.deleteAllMessages(ContactId(1)) } returns result
|
||||
every { ctx.json(result.output()) } returns ctx
|
||||
controller.deleteAllMessages(ctx)
|
||||
}
|
||||
|
||||
@@ -368,6 +371,27 @@ internal class MessagingControllerImplTest : ControllerTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testOutputDeletionResult() {
|
||||
val result = DeletionResult()
|
||||
if (Random.nextBoolean()) result.addInvitationNotAllSelected()
|
||||
if (Random.nextBoolean()) result.addInvitationSessionInProgress()
|
||||
if (Random.nextBoolean()) result.addIntroductionNotAllSelected()
|
||||
if (Random.nextBoolean()) result.addIntroductionSessionInProgress()
|
||||
if (Random.nextBoolean()) result.addNotFullyDownloaded()
|
||||
val json = """
|
||||
{
|
||||
"allDeleted": ${result.allDeleted()},
|
||||
"hasIntroductionSessionInProgress": ${result.hasIntroductionSessionInProgress()},
|
||||
"hasInvitationSessionInProgress": ${result.hasInvitationSessionInProgress()},
|
||||
"hasNotAllIntroductionSelected": ${result.hasNotAllIntroductionSelected()},
|
||||
"hasNotAllInvitationSelected": ${result.hasNotAllInvitationSelected()},
|
||||
"hasNotFullyDownloaded": ${result.hasNotFullyDownloaded()}
|
||||
}
|
||||
"""
|
||||
assertJsonEquals(json, result.output())
|
||||
}
|
||||
|
||||
private fun expectGetContact() {
|
||||
every { ctx.pathParam("contactId") } returns contact.id.int.toString()
|
||||
every { contactManager.getContact(contact.id) } returns contact
|
||||
|
||||
Reference in New Issue
Block a user