3636import static org .hamcrest .Matchers .hasItems ;
3737import static org .hamcrest .Matchers .instanceOf ;
3838import static org .hamcrest .Matchers .is ;
39- import static org .hamcrest .Matchers .nullValue ;
4039import static org .hamcrest .Matchers .startsWith ;
4140
4241@ TestMethodOrder (OrderAnnotation .class )
@@ -54,21 +53,31 @@ static void routing(HttpRouting.Builder builder) {
5453 void testToolList () {
5554 McpSchema .ListToolsResult listTool = client ().listTools ();
5655 List <McpSchema .Tool > tools = listTool .tools ();
57- assertThat (tools .size (), is (1 ));
56+ assertThat (tools .size (), is (2 ));
5857
59- McpSchema .Tool tool = tools .getFirst ();
60- assertThat (tool .name (), is ("add-calendar-event" ));
61- assertThat (tool .description (), is ("Adds a new event to the calendar." ));
58+ McpSchema .Tool tool1 = tools .getFirst ();
59+ assertThat (tool1 .name (), is ("add-calendar-event" ));
60+ assertThat (tool1 .description (), is ("Adds a new event to the calendar." ));
6261
63- McpSchema .JsonSchema schema = tool .inputSchema ();
64- assertThat (schema .type (), is ("object" ));
65- assertThat (schema .properties ().keySet (), hasItems ("name" , "date" , "attendees" ));
62+ McpSchema .JsonSchema schema1 = tool1 .inputSchema ();
63+ assertThat (schema1 .type (), is ("object" ));
64+ assertThat (schema1 .properties ().keySet (), hasItems ("name" , "date" , "attendees" ));
65+
66+ McpSchema .Tool tool2 = tools .getLast ();
67+ assertThat (tool2 .name (), is ("list-calendar-event" ));
68+ assertThat (tool2 .description (), is ("List calendar events." ));
69+
70+ McpSchema .JsonSchema schema2 = tool2 .inputSchema ();
71+ assertThat (schema2 .type (), is ("object" ));
72+ assertThat (schema2 .properties ().keySet (), hasItems ("date" ));
6673 }
6774
6875 @ Test
6976 @ Order (2 )
70- void testToolCall () {
71- Map <String , Object > arguments = Map .of ("name" , "Frank-birthday" , "date" , "2021-04-20" , "attendees" , List .of ("Frank" ));
77+ void testAddToolCall () {
78+ Map <String , Object > arguments = Map .of ("name" , "Frank-birthday" ,
79+ "date" , "2021-04-20" ,
80+ "attendees" , List .of ("Frank" ));
7281 McpSchema .CallToolRequest request = new McpSchema .CallToolRequest ("add-calendar-event" , arguments );
7382 McpSchema .CallToolResult result = client ().callTool (request );
7483 assertThat (result .isError (), is (false ));
@@ -86,6 +95,25 @@ void testToolCall() {
8695
8796 @ Test
8897 @ Order (3 )
98+ void testListToolCall () {
99+ Map <String , Object > arguments = Map .of ("date" , "2021-04-20" );
100+ McpSchema .CallToolRequest request = new McpSchema .CallToolRequest ("list-calendar-event" , arguments );
101+ McpSchema .CallToolResult result = client ().callTool (request );
102+ assertThat (result .isError (), is (false ));
103+
104+ List <McpSchema .Content > contents = result .content ();
105+ assertThat (contents .size (), is (1 ));
106+
107+ McpSchema .Content content = contents .getFirst ();
108+ assertThat (content .type (), is ("text" ));
109+ assertThat (content , instanceOf (McpSchema .TextContent .class ));
110+
111+ McpSchema .TextContent textContent = (McpSchema .TextContent ) content ;
112+ assertThat (textContent .text (), containsString ("Frank-birthday" ));
113+ }
114+
115+ @ Test
116+ @ Order (4 )
89117 void testPromptList () {
90118 McpSchema .ListPromptsResult listPrompt = client ().listPrompts ();
91119 List <McpSchema .Prompt > prompts = listPrompt .prompts ();
@@ -116,7 +144,7 @@ void testPromptList() {
116144 }
117145
118146 @ Test
119- @ Order (4 )
147+ @ Order (5 )
120148 void testPromptCall () {
121149 Map <String , Object > arguments = Map .of ("name" , "Frank-birthday" , "date" , "2021-04-20" , "attendees" , "Frank" );
122150 McpSchema .GetPromptRequest request = new McpSchema .GetPromptRequest ("create-event" , arguments );
@@ -138,7 +166,7 @@ void testPromptCall() {
138166 }
139167
140168 @ Test
141- @ Order (5 )
169+ @ Order (6 )
142170 void testResourceList () {
143171 McpSchema .ListResourcesResult result = client ().listResources ();
144172 List <McpSchema .Resource > resources = result .resources ();
@@ -152,7 +180,7 @@ void testResourceList() {
152180 }
153181
154182 @ Test
155- @ Order (6 )
183+ @ Order (7 )
156184 void testResourceCall () {
157185 String uri = client ().listResources ().resources ().getFirst ().uri ();
158186 McpSchema .ReadResourceRequest request = new McpSchema .ReadResourceRequest (uri );
@@ -171,7 +199,7 @@ void testResourceCall() {
171199 }
172200
173201 @ Test
174- @ Order (7 )
202+ @ Order (8 )
175203 void testResourceTemplateList () {
176204 McpSchema .ListResourceTemplatesResult result = client ().listResourceTemplates ();
177205 List <McpSchema .ResourceTemplate > templates = result .resourceTemplates ();
@@ -185,7 +213,7 @@ void testResourceTemplateList() {
185213 }
186214
187215 @ Test
188- @ Order (8 )
216+ @ Order (9 )
189217 void testResourceTemplateCall () {
190218 McpSchema .ReadResourceRequest request = new McpSchema .ReadResourceRequest ("file://events/Frank-birthday" );
191219 McpSchema .ReadResourceResult result = client ().readResource (request );
@@ -202,7 +230,7 @@ void testResourceTemplateCall() {
202230 }
203231
204232 @ Test
205- @ Order (9 )
233+ @ Order (10 )
206234 void testCalendarEventPromptCompletion () {
207235 McpSchema .CompleteRequest request1 = new McpSchema .CompleteRequest (
208236 new McpSchema .PromptReference ("create-event" ),
@@ -231,7 +259,7 @@ void testCalendarEventPromptCompletion() {
231259 }
232260
233261 @ Test
234- @ Order (10 )
262+ @ Order (11 )
235263 void testCalendarEventResourceCompletion () {
236264 McpSchema .CompleteRequest request = new McpSchema .CompleteRequest (
237265 new McpSchema .ResourceReference (URI_TEMPLATE ),
0 commit comments