|
31 | 31 | import com.google.common.collect.ImmutableList; |
32 | 32 | import com.google.common.collect.ImmutableMap; |
33 | 33 | import io.modelcontextprotocol.client.McpSyncClient; |
| 34 | +import io.modelcontextprotocol.client.transport.ServerParameters; |
34 | 35 | import io.modelcontextprotocol.json.McpJsonDefaults; |
35 | 36 | import io.modelcontextprotocol.json.McpJsonMapper; |
36 | 37 | import io.modelcontextprotocol.spec.McpSchema; |
@@ -369,4 +370,45 @@ public void getTools_succeedsOnLastRetryAttempt() { |
369 | 370 | verify(mockMcpSessionManager, times(3)).createSession(); |
370 | 371 | verify(mockMcpSyncClient, times(3)).listTools(); |
371 | 372 | } |
| 373 | + |
| 374 | + @Test |
| 375 | + public void resolveConnectionParameters_stdioServerParams_convertsToSdkServerParameters() { |
| 376 | + McpToolsetConfig config = new McpToolsetConfig(); |
| 377 | + config.setStdioServerParams(StdioServerParameters.builder().command("my-command").build()); |
| 378 | + |
| 379 | + Object resolved = McpToolset.resolveConnectionParameters(config); |
| 380 | + |
| 381 | + // Regression, Finding 1: this branch used to resolve to null (stdioServerParams was never |
| 382 | + // consulted), deferring the failure to an NPE in DefaultMcpTransportBuilder.build(null). |
| 383 | + assertThat(resolved).isInstanceOf(ServerParameters.class); |
| 384 | + } |
| 385 | + |
| 386 | + @Test |
| 387 | + public void resolveConnectionParameters_sseServerParams_passesThrough() { |
| 388 | + McpToolsetConfig config = new McpToolsetConfig(); |
| 389 | + SseServerParameters sseParams = |
| 390 | + SseServerParameters.builder().url("http://localhost:8080").build(); |
| 391 | + config.setSseServerParams(sseParams); |
| 392 | + |
| 393 | + assertThat(McpToolset.resolveConnectionParameters(config)).isSameInstanceAs(sseParams); |
| 394 | + } |
| 395 | + |
| 396 | + @Test |
| 397 | + public void resolveConnectionParameters_stdioConnectionParams_passesThrough() { |
| 398 | + McpToolsetConfig config = new McpToolsetConfig(); |
| 399 | + StdioConnectionParameters connectionParams = |
| 400 | + StdioConnectionParameters.builder() |
| 401 | + .serverParams(StdioServerParameters.builder().command("my-command").build()) |
| 402 | + .build(); |
| 403 | + config.setStdioConnectionParams(connectionParams); |
| 404 | + |
| 405 | + assertThat(McpToolset.resolveConnectionParameters(config)).isSameInstanceAs(connectionParams); |
| 406 | + } |
| 407 | + |
| 408 | + @Test |
| 409 | + public void resolveConnectionParameters_nothingSet_throwsIllegalStateException() { |
| 410 | + assertThrows( |
| 411 | + IllegalStateException.class, |
| 412 | + () -> McpToolset.resolveConnectionParameters(new McpToolsetConfig())); |
| 413 | + } |
372 | 414 | } |
0 commit comments