Skip to content

Commit 6bf6f72

Browse files
committed
Fix some unit tests
Signed-off-by: JermaineHua <crazyhzm@apache.org>
1 parent d18d478 commit 6bf6f72

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpSyncClientTests.java

+4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
package io.modelcontextprotocol.client;
66

77
import java.time.Duration;
8+
import java.util.Map;
89
import java.util.concurrent.CountDownLatch;
910
import java.util.concurrent.TimeUnit;
1011
import java.util.concurrent.atomic.AtomicReference;
1112

1213
import io.modelcontextprotocol.client.transport.ServerParameters;
1314
import io.modelcontextprotocol.client.transport.StdioClientTransportProvider;
15+
import io.modelcontextprotocol.spec.McpClientSession;
1416
import io.modelcontextprotocol.spec.McpClientTransport;
1517
import io.modelcontextprotocol.spec.McpClientTransportProvider;
1618
import org.junit.jupiter.api.Test;
@@ -49,6 +51,8 @@ void customErrorHandlerShouldReceiveErrors() throws InterruptedException {
4951
AtomicReference<String> receivedError = new AtomicReference<>();
5052

5153
McpClientTransportProvider transportProvider = createMcpClientTransportProvider();
54+
transportProvider.setSessionFactory(
55+
(transport) -> new McpClientSession(Duration.ofSeconds(5), transport, Map.of(), Map.of()));
5256
McpClientTransport transport = transportProvider.getSession().getTransport();
5357
StepVerifier.create(transport.connect(msg -> msg)).verifyComplete();
5458

mcp/src/test/java/io/modelcontextprotocol/spec/McpClientSessionTests.java

+20-9
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import com.fasterxml.jackson.core.type.TypeReference;
1111
import io.modelcontextprotocol.MockMcpClientTransport;
12+
import io.modelcontextprotocol.MockMcpClientTransportProvider;
1213
import org.junit.jupiter.api.AfterEach;
1314
import org.junit.jupiter.api.BeforeEach;
1415
import org.junit.jupiter.api.Test;
@@ -41,13 +42,18 @@ class McpClientSessionTests {
4142

4243
private McpClientSession session;
4344

44-
private MockMcpClientTransport transport;
45+
private MockMcpClientTransportProvider.MockMcpClientTransport transport;
46+
47+
private MockMcpClientTransportProvider transportProvider;
4548

4649
@BeforeEach
4750
void setUp() {
48-
transport = new MockMcpClientTransport();
49-
session = new McpClientSession(TIMEOUT, transport, Map.of(),
50-
Map.of(TEST_NOTIFICATION, params -> Mono.fromRunnable(() -> logger.info("Status update: " + params))));
51+
transportProvider = new MockMcpClientTransportProvider();
52+
transportProvider.setSessionFactory((transport) -> new McpClientSession(TIMEOUT, transport, Map.of(),
53+
Map.of(TEST_NOTIFICATION, params -> Mono.fromRunnable(() -> logger.info("Status update: " + params)))));
54+
session = transportProvider.getSession();
55+
transport = transportProvider.getTransport();
56+
5157
}
5258

5359
@AfterEach
@@ -139,8 +145,11 @@ void testRequestHandling() {
139145
String echoMessage = "Hello MCP!";
140146
Map<String, McpClientSession.RequestHandler<?>> requestHandlers = Map.of(ECHO_METHOD,
141147
params -> Mono.just(params));
142-
transport = new MockMcpClientTransport();
143-
session = new McpClientSession(TIMEOUT, transport, requestHandlers, Map.of());
148+
transportProvider = new MockMcpClientTransportProvider();
149+
transportProvider
150+
.setSessionFactory((transport) -> new McpClientSession(TIMEOUT, transport, requestHandlers, Map.of()));
151+
session = transportProvider.getSession();
152+
transport = transportProvider.getTransport();
144153

145154
// Simulate incoming request
146155
McpSchema.JSONRPCRequest request = new McpSchema.JSONRPCRequest(McpSchema.JSONRPC_VERSION, ECHO_METHOD,
@@ -159,9 +168,11 @@ void testRequestHandling() {
159168
void testNotificationHandling() {
160169
Sinks.One<Object> receivedParams = Sinks.one();
161170

162-
transport = new MockMcpClientTransport();
163-
session = new McpClientSession(TIMEOUT, transport, Map.of(),
164-
Map.of(TEST_NOTIFICATION, params -> Mono.fromRunnable(() -> receivedParams.tryEmitValue(params))));
171+
transportProvider = new MockMcpClientTransportProvider();
172+
transportProvider.setSessionFactory((transport) -> new McpClientSession(TIMEOUT, transport, Map.of(),
173+
Map.of(TEST_NOTIFICATION, params -> Mono.fromRunnable(() -> receivedParams.tryEmitValue(params)))));
174+
session = transportProvider.getSession();
175+
transport = transportProvider.getTransport();
165176

166177
// Simulate incoming notification from the server
167178
Map<String, Object> notificationParams = Map.of("status", "ready");

0 commit comments

Comments
 (0)