11mod test_deserialize {
2- #[ cfg( feature = "2024_11_05" ) ]
3- use rust_mcp_schema:: mcp_2024_11_05:: schema_utils:: * ;
4- #[ cfg( any( feature = "latest" , feature = "2025_06_18" ) ) ]
2+
53 #[ cfg( feature = "2024_11_05" ) ]
64 use rust_mcp_schema:: mcp_2024_11_05:: * ;
7- #[ cfg( feature = "2025_03_26" ) ]
8- use rust_mcp_schema:: mcp_2025_03_26:: schema_utils:: * ;
5+
96 #[ cfg( feature = "2025_03_26" ) ]
107 use rust_mcp_schema:: mcp_2025_03_26:: * ;
11- #[ cfg( feature = "draft" ) ]
12- use rust_mcp_schema:: mcp_draft:: schema_utils:: * ;
8+
139 #[ cfg( feature = "draft" ) ]
1410 use rust_mcp_schema:: mcp_draft:: * ;
11+
1512 #[ cfg( any( feature = "latest" , feature = "2025_06_18" ) ) ]
1613 use rust_mcp_schema:: * ;
17- use serde_json:: json;
18- use std:: collections:: HashMap ;
1914
2015 use serde:: { Deserialize , Serialize } ;
16+ use serde_json:: json;
2117 use serde_json:: { Map , Value } ;
18+ use std:: collections:: HashMap ;
2219
2320 /* ---------------------- TESTS ---------------------- */
2421
@@ -134,6 +131,7 @@ mod test_deserialize {
134131 test_serde ( & schema_min) ;
135132 }
136133
134+ #[ cfg( not( feature = "draft" ) ) ]
137135 #[ test]
138136 fn test_call_tool_request ( ) {
139137 let params = CallToolRequestParams {
@@ -243,6 +241,7 @@ mod test_deserialize {
243241 test_serde ( & notif) ;
244242 }
245243
244+ #[ cfg( not( feature = "draft" ) ) ]
246245 #[ test]
247246 fn test_client_request ( ) {
248247 let req = ClientRequest :: CallToolRequest ( CallToolRequest :: new ( CallToolRequestParams {
@@ -269,6 +268,7 @@ mod test_deserialize {
269268 test_serde ( & result) ;
270269 }
271270
271+ #[ cfg( not( feature = "draft" ) ) ]
272272 #[ test]
273273 fn test_complete_request ( ) {
274274 let argument = CompleteRequestParamsArgument {
@@ -328,7 +328,11 @@ mod test_deserialize {
328328 temperature : None ,
329329 } ;
330330
331- let req = CreateMessageRequest :: new ( params) ;
331+ let req = CreateMessageRequest :: new (
332+ #[ cfg( feature = "draft" ) ]
333+ RequestId :: Integer ( 97 ) ,
334+ params,
335+ ) ;
332336 test_serde ( & req) ;
333337 }
334338
@@ -357,7 +361,11 @@ mod test_deserialize {
357361 requested_schema : ElicitRequestedSchema :: new ( HashMap :: new ( ) , vec ! [ ] ) ,
358362 } ;
359363
360- let req = ElicitRequest :: new ( params) ;
364+ let req = ElicitRequest :: new (
365+ #[ cfg( feature = "draft" ) ]
366+ RequestId :: Integer ( 97 ) ,
367+ params,
368+ ) ;
361369 test_serde ( & req) ;
362370 }
363371
@@ -397,7 +405,11 @@ mod test_deserialize {
397405 arguments : None ,
398406 } ;
399407
400- let req = GetPromptRequest :: new ( params) ;
408+ let req = GetPromptRequest :: new (
409+ #[ cfg( feature = "draft" ) ]
410+ RequestId :: Integer ( 97 ) ,
411+ params,
412+ ) ;
401413 test_serde ( & req) ;
402414 }
403415
@@ -452,10 +464,18 @@ mod test_deserialize {
452464 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
453465 title : Some ( "title" . to_string ( ) ) ,
454466 version : "version" . to_string ( ) ,
467+ #[ cfg( feature = "draft" ) ]
468+ icons : vec ! [ ] ,
469+ #[ cfg( feature = "draft" ) ]
470+ website_url : Some ( "https://github.com/rust-mcp-stack/rust-mcp-sdk" . to_string ( ) ) ,
455471 } ,
456472 } ;
457473
458- let req = InitializeRequest :: new ( params) ;
474+ let req = InitializeRequest :: new (
475+ #[ cfg( feature = "draft" ) ]
476+ RequestId :: Integer ( 97 ) ,
477+ params,
478+ ) ;
459479 test_serde ( & req) ;
460480 }
461481
@@ -471,6 +491,10 @@ mod test_deserialize {
471491 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
472492 title : Some ( "title" . to_string ( ) ) ,
473493 version : "version" . to_string ( ) ,
494+ #[ cfg( feature = "draft" ) ]
495+ icons : vec ! [ ] ,
496+ #[ cfg( feature = "draft" ) ]
497+ website_url : Some ( "https://github.com/rust-mcp-stack/rust-mcp-sdk" . to_string ( ) ) ,
474498 } ,
475499 } ;
476500 test_serde ( & result) ;
@@ -500,7 +524,11 @@ mod test_deserialize {
500524 fn test_list_prompts_request ( ) {
501525 let params = ListPromptsRequestParams { cursor : None } ;
502526
503- let req = ListPromptsRequest :: new ( Some ( params) ) ;
527+ let req = ListPromptsRequest :: new (
528+ #[ cfg( feature = "draft" ) ]
529+ RequestId :: Integer ( 97 ) ,
530+ Some ( params) ,
531+ ) ;
504532 test_serde ( & req) ;
505533 }
506534
@@ -518,7 +546,11 @@ mod test_deserialize {
518546 fn test_list_resources_request ( ) {
519547 let params = ListResourcesRequestParams { cursor : None } ;
520548
521- let req = ListResourcesRequest :: new ( Some ( params) ) ;
549+ let req = ListResourcesRequest :: new (
550+ #[ cfg( feature = "draft" ) ]
551+ RequestId :: Integer ( 97 ) ,
552+ Some ( params) ,
553+ ) ;
522554 test_serde ( & req) ;
523555 }
524556
@@ -536,7 +568,11 @@ mod test_deserialize {
536568 fn test_list_resource_templates_request ( ) {
537569 let params = ListResourceTemplatesRequestParams { cursor : None } ;
538570
539- let req = ListResourceTemplatesRequest :: new ( Some ( params) ) ;
571+ let req = ListResourceTemplatesRequest :: new (
572+ #[ cfg( feature = "draft" ) ]
573+ RequestId :: Integer ( 97 ) ,
574+ Some ( params) ,
575+ ) ;
540576 test_serde ( & req) ;
541577 }
542578
@@ -555,14 +591,20 @@ mod test_deserialize {
555591 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
556592 title: None ,
557593 uri_template: "ice://something" . to_string( ) ,
594+ #[ cfg( feature = "draft" ) ]
595+ icons: vec![ ] ,
558596 } ] ,
559597 } ;
560598 test_serde ( & result) ;
561599 }
562600
563601 #[ test]
564602 fn test_list_roots_request ( ) {
565- let req = ListRootsRequest :: new ( Some ( ListRootsRequestParams { meta : None , extra : None } ) ) ;
603+ let req = ListRootsRequest :: new (
604+ #[ cfg( feature = "draft" ) ]
605+ RequestId :: Integer ( 97 ) ,
606+ Some ( ListRootsRequestParams { meta : None , extra : None } ) ,
607+ ) ;
566608 test_serde ( & req) ;
567609 }
568610
@@ -578,7 +620,11 @@ mod test_deserialize {
578620 #[ test]
579621 fn test_list_tools_request ( ) {
580622 let params = ListToolsRequestParams { cursor : None } ;
581- let req = ListToolsRequest :: new ( Some ( params) ) ;
623+ let req = ListToolsRequest :: new (
624+ #[ cfg( feature = "draft" ) ]
625+ RequestId :: Integer ( 97 ) ,
626+ Some ( params) ,
627+ ) ;
582628 test_serde ( & req) ;
583629 }
584630
@@ -612,14 +658,20 @@ mod test_deserialize {
612658 minimum : None ,
613659 title : None ,
614660 type_ : NumberSchemaType :: Integer ,
661+ #[ cfg( feature = "draft" ) ]
662+ default : None ,
615663 } ;
616664 test_serde ( & schema) ;
617665 }
618666
619667 #[ test]
620668 fn test_ping_request ( ) {
621669 let params = PingRequestParams { meta : None , extra : None } ;
622- let req = PingRequest :: new ( Some ( params) ) ;
670+ let req = PingRequest :: new (
671+ #[ cfg( feature = "draft" ) ]
672+ RequestId :: Integer ( 97 ) ,
673+ Some ( params) ,
674+ ) ;
623675 test_serde ( & req) ;
624676 }
625677
@@ -653,6 +705,8 @@ mod test_deserialize {
653705 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
654706 title: None ,
655707 } ] ,
708+ #[ cfg( feature = "draft" ) ]
709+ icons : vec ! [ ] ,
656710 } ;
657711 test_serde ( & prompt) ;
658712 }
@@ -678,7 +732,11 @@ mod test_deserialize {
678732 #[ test]
679733 fn test_read_resource_request ( ) {
680734 let params = ReadResourceRequestParams { uri : "test" . to_string ( ) } ;
681- let req = ReadResourceRequest :: new ( params) ;
735+ let req = ReadResourceRequest :: new (
736+ #[ cfg( feature = "draft" ) ]
737+ RequestId :: Integer ( 97 ) ,
738+ params,
739+ ) ;
682740 test_serde ( & req) ;
683741 }
684742
@@ -708,8 +766,18 @@ mod test_deserialize {
708766 let name = "name" . to_string ( ) ;
709767 let size = None ;
710768 let title = None ;
711- let link = ResourceLink :: new ( name, uri, annotations, description, meta, mime_type, size, title) ;
712-
769+ let link = ResourceLink :: new (
770+ #[ cfg( feature = "draft" ) ]
771+ vec ! [ ] ,
772+ name,
773+ uri,
774+ annotations,
775+ description,
776+ meta,
777+ mime_type,
778+ size,
779+ title,
780+ ) ;
713781 test_serde ( & link) ;
714782 }
715783
@@ -732,6 +800,8 @@ mod test_deserialize {
732800 title : None ,
733801 mime_type : Some ( "mime/pine" . to_string ( ) ) ,
734802 uri_template : "ice://something" . to_string ( ) ,
803+ #[ cfg( feature = "draft" ) ]
804+ icons : vec ! [ ] ,
735805 } ;
736806 test_serde ( & template) ;
737807 }
@@ -805,7 +875,11 @@ mod test_deserialize {
805875
806876 #[ test]
807877 fn test_server_request ( ) {
808- let req = ServerRequest :: PingRequest ( PingRequest :: new ( None ) ) ;
878+ let req = ServerRequest :: PingRequest ( PingRequest :: new (
879+ #[ cfg( feature = "draft" ) ]
880+ RequestId :: Integer ( 97 ) ,
881+ None ,
882+ ) ) ;
809883 test_serde ( & req) ;
810884 }
811885
@@ -821,6 +895,10 @@ mod test_deserialize {
821895 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
822896 title : Some ( "title" . to_string ( ) ) ,
823897 version : "version" . to_string ( ) ,
898+ #[ cfg( feature = "draft" ) ]
899+ icons : vec ! [ ] ,
900+ #[ cfg( feature = "draft" ) ]
901+ website_url : Some ( "https://github.com/rust-mcp-stack/rust-mcp-sdk" . to_string ( ) ) ,
824902 } ,
825903 } ) ;
826904 test_serde ( & result) ;
@@ -832,14 +910,20 @@ mod test_deserialize {
832910 level : LoggingLevel :: Info ,
833911 } ;
834912
835- let req = SetLevelRequest :: new ( params) ;
913+ let req = SetLevelRequest :: new (
914+ #[ cfg( feature = "draft" ) ]
915+ RequestId :: Integer ( 23 ) ,
916+ params,
917+ ) ;
836918 test_serde ( & req) ;
837919 }
838920
839921 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
840922 #[ test]
841923 fn test_string_schema ( ) {
842924 let schema = StringSchema :: new (
925+ #[ cfg( feature = "draft" ) ]
926+ Some ( "default" . to_string ( ) ) ,
843927 Some ( "description" . to_string ( ) ) ,
844928 None ,
845929 Some ( 21 ) ,
@@ -854,7 +938,11 @@ mod test_deserialize {
854938 fn test_subscribe_request ( ) {
855939 let params = SubscribeRequestParams { uri : "test" . to_string ( ) } ;
856940
857- let req = SubscribeRequest :: new ( params) ;
941+ let req = SubscribeRequest :: new (
942+ #[ cfg( feature = "draft" ) ]
943+ RequestId :: Integer ( 22 ) ,
944+ params,
945+ ) ;
858946 test_serde ( & req) ;
859947 }
860948
@@ -896,6 +984,8 @@ mod test_deserialize {
896984 output_schema : None ,
897985 #[ cfg( any( feature = "draft" , feature = "2025_06_18" ) ) ]
898986 title : None ,
987+ #[ cfg( feature = "draft" ) ]
988+ icons : vec ! [ ] ,
899989 } ;
900990 test_serde ( & tool) ;
901991 }
@@ -926,6 +1016,7 @@ mod test_deserialize {
9261016 test_serde ( & schema) ;
9271017 }
9281018
1019+ #[ cfg( not( feature = "draft" ) ) ]
9291020 #[ test]
9301021 fn test_unsubscribe_request ( ) {
9311022 let params = UnsubscribeRequestParams { uri : "test" . to_string ( ) } ;
0 commit comments