@@ -29,17 +29,69 @@ func TestServer(t *testing.T) {
2929 require .NotNil (t , session )
3030 defer func () { _ = session .Close () }()
3131
32- list , err := session .ListTools (ctx , & gomcp.ListToolsParams {})
33- require .NoError (t , err )
34- require .Len (t , list .Tools , 9 )
35- // alphabetical order
36- require .Equal (t , "mokapi_execute_code" , list .Tools [0 ].Name )
37- require .Equal (t , "mokapi_generate_http_mock_response" , list .Tools [1 ].Name )
38- require .Equal (t , "mokapi_get_api_spec" , list .Tools [2 ].Name )
39- require .Equal (t , "mokapi_get_events" , list .Tools [3 ].Name )
40- require .Equal (t , "mokapi_get_http_mock_template" , list .Tools [4 ].Name )
41- require .Equal (t , "mokapi_get_scenarios" , list .Tools [5 ].Name )
42- require .Equal (t , "mokapi_get_typescript_api" , list .Tools [6 ].Name )
43- require .Equal (t , "mokapi_produce_kafka_message" , list .Tools [7 ].Name )
44- require .Equal (t , "mokapi_send_http_request" , list .Tools [8 ].Name )
32+ testcases := []struct {
33+ name string
34+ test func (t * testing.T )
35+ }{
36+ {
37+ name : "test tool list" ,
38+ test : func (t * testing.T ) {
39+ list , err := session .ListTools (ctx , & gomcp.ListToolsParams {})
40+ require .NoError (t , err )
41+ require .Len (t , list .Tools , 9 )
42+ // alphabetical order
43+ require .Equal (t , "mokapi_execute_code" , list .Tools [0 ].Name )
44+ require .Equal (t , "mokapi_generate_http_mock_response" , list .Tools [1 ].Name )
45+ require .Equal (t , "mokapi_get_api_spec" , list .Tools [2 ].Name )
46+ require .Equal (t , "mokapi_get_events" , list .Tools [3 ].Name )
47+ require .Equal (t , "mokapi_get_http_mock_template" , list .Tools [4 ].Name )
48+ require .Equal (t , "mokapi_get_scenarios" , list .Tools [5 ].Name )
49+ require .Equal (t , "mokapi_get_typescript_api" , list .Tools [6 ].Name )
50+ require .Equal (t , "mokapi_produce_kafka_message" , list .Tools [7 ].Name )
51+ require .Equal (t , "mokapi_send_http_request" , list .Tools [8 ].Name )
52+ },
53+ },
54+ {
55+ name : "run code" ,
56+ test : func (t * testing.T ) {
57+ r , err := session .CallTool (ctx , & gomcp.CallToolParams {
58+ Name : "mokapi_execute_code" ,
59+ Arguments : mcp.RunInput {
60+ Code : "1+1" ,
61+ },
62+ })
63+ require .NoError (t , err )
64+ require .IsType (t , & gomcp.TextContent {}, r .Content [0 ])
65+ tc := r .Content [0 ].(* gomcp.TextContent )
66+ require .Equal (t , `{"result":2}` , tc .Text )
67+ },
68+ },
69+ {
70+ name : "get mokapi_execute_code tool information" ,
71+ test : func (t * testing.T ) {
72+ list , err := session .ListTools (ctx , & gomcp.ListToolsParams {
73+ Meta : nil ,
74+ Cursor : "" ,
75+ })
76+ require .NoError (t , err )
77+ require .Contains (t , list .Tools [0 ].Description , "api://execute-types" )
78+ },
79+ },
80+ {
81+ name : "get resource execute-types" ,
82+ test : func (t * testing.T ) {
83+ list , err := session .ListResources (ctx , & gomcp.ListResourcesParams {})
84+ require .NoError (t , err )
85+ require .Equal (t , "api-docs" , list .Resources [0 ].Name )
86+ require .Equal (t , "api://execute-types" , list .Resources [0 ].URI )
87+ },
88+ },
89+ }
90+
91+ for _ , tc := range testcases {
92+ t .Run (tc .name , func (t * testing.T ) {
93+ tc .test (t )
94+ })
95+ }
96+
4597}
0 commit comments