99
1010import com .fasterxml .jackson .core .type .TypeReference ;
1111import io .modelcontextprotocol .MockMcpClientTransport ;
12+ import io .modelcontextprotocol .MockMcpClientTransportProvider ;
1213import org .junit .jupiter .api .AfterEach ;
1314import org .junit .jupiter .api .BeforeEach ;
1415import 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