@@ -378,6 +378,60 @@ async def test_send_message_success(
378378 assert isinstance (response , Message )
379379 assert response .model_dump () == success_response .model_dump ()
380380
381+ @pytest .mark .asyncio
382+ async def test_send_message_success_with_extensions (
383+ self , mock_httpx_client : AsyncMock , mock_agent_card : MagicMock
384+ ):
385+ client = JsonRpcTransport (
386+ httpx_client = mock_httpx_client , agent_card = mock_agent_card
387+ )
388+ params = MessageSendParams (
389+ message = create_text_message_object (content = 'Hello' , extensions = ['test' ])
390+ )
391+ success_response = create_text_message_object (
392+ role = Role .agent , content = 'Hi there!' , extensions = ['test' ]
393+ )
394+ rpc_response = SendMessageSuccessResponse (
395+ id = '123' , jsonrpc = '2.0' , result = success_response
396+ )
397+ response = httpx .Response (
398+ 200 , json = rpc_response .model_dump (mode = 'json' )
399+ )
400+ response .request = httpx .Request ('POST' , 'http://agent.example.com/api' )
401+ mock_httpx_client .post .return_value = response
402+
403+ response = await client .send_message (request = params )
404+
405+ assert isinstance (response , Message )
406+ assert response .model_dump () == success_response .model_dump ()
407+
408+ @pytest .mark .asyncio
409+ async def test_send_message_success_with_metadata (
410+ self , mock_httpx_client : AsyncMock , mock_agent_card : MagicMock
411+ ):
412+ client = JsonRpcTransport (
413+ httpx_client = mock_httpx_client , agent_card = mock_agent_card
414+ )
415+ params = MessageSendParams (
416+ message = create_text_message_object (content = 'Hello' , metadata = {'test' : 'test' })
417+ )
418+ success_response = create_text_message_object (
419+ role = Role .agent , content = 'Hi there!' , metadata = {'test' : 'test' }
420+ )
421+ rpc_response = SendMessageSuccessResponse (
422+ id = '123' , jsonrpc = '2.0' , result = success_response
423+ )
424+ response = httpx .Response (
425+ 200 , json = rpc_response .model_dump (mode = 'json' )
426+ )
427+ response .request = httpx .Request ('POST' , 'http://agent.example.com/api' )
428+ mock_httpx_client .post .return_value = response
429+
430+ response = await client .send_message (request = params )
431+
432+ assert isinstance (response , Message )
433+ assert response .model_dump () == success_response .model_dump ()
434+
381435 @pytest .mark .asyncio
382436 async def test_send_message_error_response (
383437 self , mock_httpx_client : AsyncMock , mock_agent_card : MagicMock
0 commit comments