11package io.modelcontextprotocol.kotlin.sdk.shared
22
3+ import io.kotest.matchers.collections.shouldContainExactly
4+ import io.kotest.matchers.nulls.shouldNotBeNull
5+ import io.kotest.matchers.shouldBe
36import io.modelcontextprotocol.kotlin.sdk.types.CustomRequest
47import io.modelcontextprotocol.kotlin.sdk.types.EmptyResult
58import io.modelcontextprotocol.kotlin.sdk.types.JSONRPCMessage
@@ -23,7 +26,6 @@ import kotlinx.serialization.json.jsonObject
2326import kotlinx.serialization.json.jsonPrimitive
2427import kotlin.test.BeforeTest
2528import kotlin.test.Test
26- import kotlin.test.assertEquals
2729
2830class ProtocolTest {
2931 private lateinit var protocol: TestProtocol
@@ -56,13 +58,13 @@ class ProtocolTest {
5658 }
5759
5860 val sent = transport.awaitRequest()
59- val params = requireNotNull( sent.params) .jsonObject
60- val meta = params[" _meta" ]!! .jsonObject
61+ val params = sent.params? .jsonObject.shouldNotBeNull()
62+ val meta = params[" _meta" ]? .jsonObject.shouldNotBeNull()
6163
62- assertEquals( " test://resource " , params[" uri" ]!! .jsonPrimitive.content)
63- assertEquals( " customValue " , meta[" customField" ]!! .jsonPrimitive.content)
64- assertEquals( 123 , meta[" anotherField" ]!! .jsonPrimitive.int)
65- assertEquals( McpJson .encodeToJsonElement(sent.id), meta[ " progressToken " ] )
64+ params[" uri" ]? .jsonPrimitive? .content shouldBe " test://resource "
65+ meta[" customField" ]? .jsonPrimitive? .content shouldBe " customValue "
66+ meta[" anotherField" ]? .jsonPrimitive? .int shouldBe 123
67+ meta[ " progressToken " ] shouldBe McpJson .encodeToJsonElement(sent.id)
6668
6769 transport.deliver(JSONRPCResponse (sent.id, EmptyResult ()))
6870 inFlight.await()
@@ -86,11 +88,11 @@ class ProtocolTest {
8688 }
8789
8890 val sent = transport.awaitRequest()
89- val params = requireNotNull( sent.params) .jsonObject
90- val meta = params[" _meta" ]!! .jsonObject
91+ val params = sent.params? .jsonObject.shouldNotBeNull()
92+ val meta = params[" _meta" ]? .jsonObject.shouldNotBeNull()
9193
92- assertEquals( " test://resource " , params[" uri" ]!! .jsonPrimitive.content)
93- assertEquals( McpJson .encodeToJsonElement(sent.id), meta[ " progressToken " ] )
94+ params[" uri" ]? .jsonPrimitive? .content shouldBe " test://resource "
95+ meta[ " progressToken " ] shouldBe McpJson .encodeToJsonElement(sent.id)
9496
9597 transport.deliver(JSONRPCResponse (sent.id, EmptyResult ()))
9698 inFlight.await()
@@ -114,11 +116,11 @@ class ProtocolTest {
114116 }
115117
116118 val sent = transport.awaitRequest()
117- val params = requireNotNull( sent.params) .jsonObject
118- val meta = params[" _meta" ]!! .jsonObject
119+ val params = sent.params? .jsonObject.shouldNotBeNull()
120+ val meta = params[" _meta" ]? .jsonObject.shouldNotBeNull()
119121
120- assertEquals(originalMeta, meta)
121- assertEquals( " test://resource " , params[" uri" ]!! .jsonPrimitive.content)
122+ meta shouldBe originalMeta
123+ params[" uri" ]? .jsonPrimitive? .content shouldBe " test://resource "
122124
123125 transport.deliver(JSONRPCResponse (sent.id, EmptyResult ()))
124126 inFlight.await()
@@ -140,11 +142,11 @@ class ProtocolTest {
140142 }
141143
142144 val sent = transport.awaitRequest()
143- val params = requireNotNull( sent.params) .jsonObject
144- val meta = params[" _meta" ]!! .jsonObject
145+ val params = sent.params? .jsonObject.shouldNotBeNull()
146+ val meta = params[" _meta" ]? .jsonObject.shouldNotBeNull()
145147
146- assertEquals( setOf (" _meta" ), params.keys )
147- assertEquals( McpJson .encodeToJsonElement(sent.id), meta[ " progressToken " ] )
148+ params.keys shouldContainExactly setOf (" _meta" )
149+ meta[ " progressToken " ] shouldBe McpJson .encodeToJsonElement(sent.id)
148150
149151 transport.deliver(JSONRPCResponse (sent.id, EmptyResult ()))
150152 inFlight.await()
0 commit comments