Skip to content

Commit

Permalink
Add InboundMessage function
Browse files Browse the repository at this point in the history
  • Loading branch information
SMadani committed Jun 21, 2024
1 parent cdc5b3c commit 40c1791
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/main/kotlin/com/vonage/client/kt/Messages.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ class Messages(private val client: MessagesClient) {
}
}

fun parseInboundMessage(json: String) : InboundMessage {
return InboundMessage.fromJson(json)
}

fun smsText(init: SmsTextRequest.Builder.() -> Unit): SmsTextRequest {
return SmsTextRequest.builder().apply(init).build()
}
Expand Down
42 changes: 42 additions & 0 deletions src/test/kotlin/com/vonage/client/kt/MessagesTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,21 @@ package com.vonage.client.kt

import com.fasterxml.jackson.databind.ObjectMapper
import com.marcinziolo.kotlin.wiremock.*
import com.vonage.client.messages.Channel
import com.vonage.client.messages.MessageRequest
import com.vonage.client.messages.MessageResponse
import com.vonage.client.messages.MessageType
import com.vonage.client.messages.MessagesVersion
import com.vonage.client.messages.viber.Category
import com.vonage.client.messages.whatsapp.Locale
import com.vonage.client.messages.whatsapp.Policy
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import java.net.URI
import java.time.Instant
import java.util.*
import kotlin.test.assertEquals
import kotlin.test.assertNotNull

class MessagesTest : AbstractTest() {
private val messagesClient = vonageClient.messages
Expand Down Expand Up @@ -413,4 +419,40 @@ class MessagesTest : AbstractTest() {
addProductsSection(title2, product2)
})
}

@Test
fun `parse inbound MMS image`() {
val timestampStr = "2020-01-29T14:08:30.201Z"
val networkCode = "54123"
val parsed = parseInboundMessage(
"""
{
"channel": "$mmsChannel",
"message_uuid": "$messageUuid",
"to": "$toNumber",
"from": "$fromNumber",
"timestamp": "$timestampStr",
"origin": {
"network_code": "$networkCode"
},
"message_type": "image",
"image": {
"url": "$imageUrl",
"name": "image.jpg",
"caption": "$caption"
}
}
"""
)
assertNotNull(parsed)
assertEquals(Channel.MMS, parsed.channel)
assertEquals(messageUuid, parsed.messageUuid)
assertEquals(toNumber, parsed.to)
assertEquals(fromNumber, parsed.from)
assertEquals(Instant.parse(timestampStr), parsed.timestamp)
assertEquals(networkCode, parsed.networkCode)
assertEquals(MessageType.IMAGE, parsed.messageType)
assertEquals(URI.create(imageUrl), parsed.imageUrl)
assertEquals(caption, parsed.imageCaption)
}
}

0 comments on commit 40c1791

Please sign in to comment.