3
3
import static org .junit .jupiter .api .Assertions .assertDoesNotThrow ;
4
4
import static org .junit .jupiter .api .Assertions .assertEquals ;
5
5
import static org .junit .jupiter .api .Assertions .assertFalse ;
6
+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
6
7
import static org .junit .jupiter .api .Assertions .assertSame ;
7
8
import static org .junit .jupiter .api .Assertions .assertThrows ;
8
9
@@ -184,19 +185,43 @@ private void verifyPromptsRegistered(McpSyncClient client) {
184
185
List <McpSchema .Prompt > prompts = client .listPrompts ().prompts ();
185
186
assertEquals (2 , prompts .size ());
186
187
187
- McpSchema .Prompt prompt = prompts .get (0 );
188
- assertEquals ("prompt1_name" , prompt .name ());
189
- assertEquals ("prompt1_title" , prompt .title ());
190
- assertEquals ("prompt1_description" , prompt .description ());
191
-
192
- List <McpSchema .PromptArgument > arguments = prompt .arguments ();
193
- assertEquals (2 , arguments .size ());
194
- assertEquals ("param1" , arguments .get (0 ).name ());
195
- assertEquals ("param1_title" , arguments .get (0 ).title ());
196
- assertEquals ("param1_description" , arguments .get (0 ).description ());
197
- assertEquals ("param2" , arguments .get (1 ).name ());
198
- assertEquals ("param2_title" , arguments .get (1 ).title ());
199
- assertEquals ("param2_description" , arguments .get (1 ).description ());
188
+ McpSchema .Prompt prompt1 =
189
+ prompts .stream ()
190
+ .filter (prompt -> prompt .name ().equals ("prompt1_name" ))
191
+ .findAny ()
192
+ .orElse (null );
193
+ assertNotNull (prompt1 );
194
+ assertEquals ("prompt1_name" , prompt1 .name ());
195
+ assertEquals ("prompt1_title" , prompt1 .title ());
196
+ assertEquals ("prompt1_description" , prompt1 .description ());
197
+
198
+ List <McpSchema .PromptArgument > arguments1 = prompt1 .arguments ();
199
+ assertEquals (2 , arguments1 .size ());
200
+ assertEquals ("param1" , arguments1 .get (0 ).name ());
201
+ assertEquals ("param1_title" , arguments1 .get (0 ).title ());
202
+ assertEquals ("param1_description" , arguments1 .get (0 ).description ());
203
+ assertEquals ("param2" , arguments1 .get (1 ).name ());
204
+ assertEquals ("param2_title" , arguments1 .get (1 ).title ());
205
+ assertEquals ("param2_description" , arguments1 .get (1 ).description ());
206
+
207
+ McpSchema .Prompt prompt2 =
208
+ prompts .stream ()
209
+ .filter (prompt -> prompt .name ().equals ("prompt2_name" ))
210
+ .findAny ()
211
+ .orElse (null );
212
+ assertNotNull (prompt2 );
213
+ assertEquals ("prompt2_name" , prompt2 .name ());
214
+ assertEquals ("prompt2_title" , prompt2 .title ());
215
+ assertEquals ("prompt2_description" , prompt2 .description ());
216
+
217
+ List <McpSchema .PromptArgument > arguments2 = prompt2 .arguments ();
218
+ assertEquals (2 , arguments2 .size ());
219
+ assertEquals ("param1" , arguments2 .get (0 ).name ());
220
+ assertEquals ("param1_title" , arguments2 .get (0 ).title ());
221
+ assertEquals ("param1_description" , arguments2 .get (0 ).description ());
222
+ assertEquals ("param2" , arguments2 .get (1 ).name ());
223
+ assertEquals ("param2_title" , arguments2 .get (1 ).title ());
224
+ assertEquals ("param2_description" , arguments2 .get (1 ).description ());
200
225
}
201
226
202
227
private void verifyPromptsCalled (McpSyncClient client ) {
@@ -219,17 +244,28 @@ private void verifyPromptsCalled(McpSyncClient client) {
219
244
220
245
private void verifyToolsRegistered (McpSyncClient client ) {
221
246
List <McpSchema .Tool > tools = client .listTools ().tools ();
222
- assertEquals (2 , tools .size ());
247
+ assertEquals (3 , tools .size ());
223
248
224
- McpSchema .Tool tool1 = tools .get (0 );
249
+ McpSchema .Tool tool1 =
250
+ tools .stream ().filter (tool -> tool .name ().equals ("tool1_name" )).findAny ().orElse (null );
251
+ assertNotNull (tool1 );
225
252
assertEquals ("tool1_name" , tool1 .name ());
226
253
assertEquals ("tool1_title" , tool1 .title ());
227
254
assertEquals ("tool1_description" , tool1 .description ());
228
255
229
- McpSchema .Tool tool2 = tools .get (1 );
256
+ McpSchema .Tool tool2 =
257
+ tools .stream ().filter (tool -> tool .name ().equals ("tool2_name" )).findAny ().orElse (null );
258
+ assertNotNull (tool2 );
230
259
assertEquals ("tool2_name" , tool2 .name ());
231
260
assertEquals ("tool2_title" , tool2 .title ());
232
261
assertEquals ("tool2_description" , tool2 .description ());
262
+
263
+ McpSchema .Tool tool3 =
264
+ tools .stream ().filter (tool -> tool .name ().equals ("tool3_name" )).findAny ().orElse (null );
265
+ assertNotNull (tool3 );
266
+ assertEquals ("tool3_name" , tool3 .name ());
267
+ assertEquals ("tool3_title" , tool3 .title ());
268
+ assertEquals ("tool3_description" , tool3 .description ());
233
269
}
234
270
235
271
private void verifyToolsCalled (McpSyncClient client ) {
@@ -248,5 +284,13 @@ private void verifyToolsCalled(McpSyncClient client) {
248
284
McpSchema .TextContent content2 = (McpSchema .TextContent ) result2 .content ().get (0 );
249
285
assertFalse (result2 .isError ());
250
286
assertEquals ("tool2 is called" , content2 .text ());
287
+
288
+ String name3 = "tool3_name" ;
289
+ Map <String , Object > args3 = Map .of ("param1" , "value1" , "param2" , "value2" );
290
+ McpSchema .CallToolRequest request3 = new McpSchema .CallToolRequest (name3 , args3 );
291
+ McpSchema .CallToolResult result3 = client .callTool (request3 );
292
+ McpSchema .TextContent content3 = (McpSchema .TextContent ) result3 .content ().get (0 );
293
+ assertFalse (result3 .isError ());
294
+ assertEquals ("This tool returned nullable or void" , content3 .text ());
251
295
}
252
296
}
0 commit comments