@@ -291,16 +291,31 @@ mod tests {
291291 "parts" : [ { "text" : "hello" } ]
292292 }
293293 } ) ;
294- let resp = post_jsonrpc ( app, "message.send" , params) . await ;
294+ let resp = post_jsonrpc ( app, methods :: SEND_MESSAGE , params) . await ;
295295 assert ! ( resp. error. is_none( ) , "unexpected error: {:?}" , resp. error) ;
296296 assert ! ( resp. result. is_some( ) ) ;
297297 }
298298
299+ #[ tokio:: test]
300+ async fn test_send_message_legacy_method_rejected ( ) {
301+ let app = make_app ( ) ;
302+ let params = serde_json:: json!( {
303+ "message" : {
304+ "messageId" : "m1" ,
305+ "role" : "ROLE_USER" ,
306+ "parts" : [ { "text" : "hello" } ]
307+ }
308+ } ) ;
309+ let resp = post_jsonrpc ( app, "message.send" , params) . await ;
310+ assert ! ( resp. error. is_some( ) , "unexpected result: {:?}" , resp. result) ;
311+ assert_eq ! ( resp. error. unwrap( ) . code, error_code:: METHOD_NOT_FOUND ) ;
312+ }
313+
299314 #[ tokio:: test]
300315 async fn test_get_task_not_found ( ) {
301316 let app = make_app ( ) ;
302317 let params = serde_json:: json!( { "id" : "nonexistent" } ) ;
303- let resp = post_jsonrpc ( app, "tasks.get" , params) . await ;
318+ let resp = post_jsonrpc ( app, methods :: GET_TASK , params) . await ;
304319 assert ! ( resp. error. is_some( ) ) ;
305320 assert_eq ! ( resp. error. unwrap( ) . code, error_code:: TASK_NOT_FOUND ) ;
306321 }
@@ -326,7 +341,7 @@ mod tests {
326341 let rpc = serde_json:: json!( {
327342 "jsonrpc" : "1.0" ,
328343 "id" : 1 ,
329- "method" : "message.send" ,
344+ "method" : methods :: SEND_MESSAGE ,
330345 "params" : { }
331346 } ) ;
332347 let body = serde_json:: to_string ( & rpc) . unwrap ( ) ;
@@ -346,7 +361,7 @@ mod tests {
346361 async fn test_invalid_params ( ) {
347362 let app = make_app ( ) ;
348363 let params = serde_json:: json!( { "bogus" : true } ) ;
349- let resp = post_jsonrpc ( app, "message.send" , params) . await ;
364+ let resp = post_jsonrpc ( app, methods :: SEND_MESSAGE , params) . await ;
350365 assert ! ( resp. error. is_some( ) ) ;
351366 assert_eq ! ( resp. error. unwrap( ) . code, error_code:: PARSE_ERROR ) ;
352367 }
@@ -355,15 +370,15 @@ mod tests {
355370 async fn test_list_tasks ( ) {
356371 let app = make_app ( ) ;
357372 let params = serde_json:: json!( { } ) ;
358- let resp = post_jsonrpc ( app, "tasks.list" , params) . await ;
373+ let resp = post_jsonrpc ( app, methods :: LIST_TASKS , params) . await ;
359374 assert ! ( resp. result. is_some( ) ) ;
360375 }
361376
362377 #[ tokio:: test]
363378 async fn test_cancel_task_not_found ( ) {
364379 let app = make_app ( ) ;
365380 let params = serde_json:: json!( { "id" : "nonexistent" } ) ;
366- let resp = post_jsonrpc ( app, "tasks.cancel" , params) . await ;
381+ let resp = post_jsonrpc ( app, methods :: CANCEL_TASK , params) . await ;
367382 assert ! ( resp. error. is_some( ) ) ;
368383 }
369384
@@ -376,7 +391,7 @@ mod tests {
376391 "url" : "http://example.com/callback"
377392 }
378393 } ) ;
379- let resp = post_jsonrpc ( app, "tasks.pushNotificationConfig.create" , params) . await ;
394+ let resp = post_jsonrpc ( app, methods :: CREATE_PUSH_CONFIG , params) . await ;
380395 // May fail since task doesn't exist, but method is dispatched
381396 assert ! ( resp. error. is_some( ) || resp. result. is_some( ) ) ;
382397 }
@@ -388,7 +403,7 @@ mod tests {
388403 "taskId" : "t1" ,
389404 "id" : "cfg1"
390405 } ) ;
391- let resp = post_jsonrpc ( app, "tasks.pushNotificationConfig.get" , params) . await ;
406+ let resp = post_jsonrpc ( app, methods :: GET_PUSH_CONFIG , params) . await ;
392407 assert ! ( resp. error. is_some( ) || resp. result. is_some( ) ) ;
393408 }
394409
@@ -398,7 +413,7 @@ mod tests {
398413 let params = serde_json:: json!( {
399414 "taskId" : "t1"
400415 } ) ;
401- let resp = post_jsonrpc ( app, "tasks.pushNotificationConfig.list" , params) . await ;
416+ let resp = post_jsonrpc ( app, methods :: LIST_PUSH_CONFIGS , params) . await ;
402417 assert ! ( resp. error. is_some( ) || resp. result. is_some( ) ) ;
403418 }
404419
@@ -409,15 +424,15 @@ mod tests {
409424 "taskId" : "t1" ,
410425 "id" : "cfg1"
411426 } ) ;
412- let resp = post_jsonrpc ( app, "tasks.pushNotificationConfig.delete" , params) . await ;
427+ let resp = post_jsonrpc ( app, methods :: DELETE_PUSH_CONFIG , params) . await ;
413428 assert ! ( resp. error. is_some( ) || resp. result. is_some( ) ) ;
414429 }
415430
416431 #[ tokio:: test]
417432 async fn test_get_extended_agent_card ( ) {
418433 let app = make_app ( ) ;
419434 let params = serde_json:: json!( { } ) ;
420- let resp = post_jsonrpc ( app, "agent.extendedCard.get" , params) . await ;
435+ let resp = post_jsonrpc ( app, methods :: GET_EXTENDED_AGENT_CARD , params) . await ;
421436 // DefaultRequestHandler returns NotSupported
422437 assert ! ( resp. error. is_some( ) || resp. result. is_some( ) ) ;
423438 }
@@ -432,7 +447,11 @@ mod tests {
432447 "parts" : [ { "text" : "hello" } ]
433448 }
434449 } ) ;
435- let rpc = JsonRpcRequest :: new ( JsonRpcId :: Number ( 1 ) , "message.stream" , Some ( body) ) ;
450+ let rpc = JsonRpcRequest :: new (
451+ JsonRpcId :: Number ( 1 ) ,
452+ methods:: SEND_STREAMING_MESSAGE ,
453+ Some ( body) ,
454+ ) ;
436455 let req = Request :: builder ( )
437456 . uri ( "/" )
438457 . method ( "POST" )
@@ -450,7 +469,7 @@ mod tests {
450469 let app = make_app ( ) ;
451470 let rpc = JsonRpcRequest :: new (
452471 JsonRpcId :: Number ( 1 ) ,
453- "tasks.subscribe" ,
472+ methods :: SUBSCRIBE_TO_TASK ,
454473 Some ( serde_json:: json!( { "id" : "t1" } ) ) ,
455474 ) ;
456475 let req = Request :: builder ( )
@@ -464,6 +483,35 @@ mod tests {
464483 assert_eq ! ( resp. status( ) , StatusCode :: OK ) ;
465484 }
466485
486+ #[ tokio:: test]
487+ async fn test_streaming_send_message_legacy_method_rejected ( ) {
488+ let app = make_app ( ) ;
489+ let body = serde_json:: json!( {
490+ "message" : {
491+ "messageId" : "m1" ,
492+ "role" : "ROLE_USER" ,
493+ "parts" : [ { "text" : "hello" } ]
494+ }
495+ } ) ;
496+ let rpc = JsonRpcRequest :: new ( JsonRpcId :: Number ( 1 ) , "message.stream" , Some ( body) ) ;
497+ let req = Request :: builder ( )
498+ . uri ( "/" )
499+ . method ( "POST" )
500+ . header ( "content-type" , "application/json" )
501+ . header ( "accept" , "text/event-stream" )
502+ . body ( Body :: from ( serde_json:: to_string ( & rpc) . unwrap ( ) ) )
503+ . unwrap ( ) ;
504+ let resp = app. oneshot ( req) . await . unwrap ( ) ;
505+ let body = resp. into_body ( ) . collect ( ) . await . unwrap ( ) . to_bytes ( ) ;
506+ let rpc_resp: JsonRpcResponse = serde_json:: from_slice ( & body) . unwrap ( ) ;
507+ assert ! (
508+ rpc_resp. error. is_some( ) ,
509+ "unexpected result: {:?}" ,
510+ rpc_resp. result
511+ ) ;
512+ assert_eq ! ( rpc_resp. error. unwrap( ) . code, error_code:: METHOD_NOT_FOUND ) ;
513+ }
514+
467515 #[ tokio:: test]
468516 async fn test_streaming_invalid_method ( ) {
469517 let app = make_app ( ) ;
0 commit comments