9
9
10
10
import com .fasterxml .jackson .core .type .TypeReference ;
11
11
import io .modelcontextprotocol .MockMcpClientTransport ;
12
+ import io .modelcontextprotocol .MockMcpClientTransportProvider ;
12
13
import org .junit .jupiter .api .AfterEach ;
13
14
import org .junit .jupiter .api .BeforeEach ;
14
15
import org .junit .jupiter .api .Test ;
@@ -41,13 +42,18 @@ class McpClientSessionTests {
41
42
42
43
private McpClientSession session ;
43
44
44
- private MockMcpClientTransport transport ;
45
+ private MockMcpClientTransportProvider .MockMcpClientTransport transport ;
46
+
47
+ private MockMcpClientTransportProvider transportProvider ;
45
48
46
49
@ BeforeEach
47
50
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
+
51
57
}
52
58
53
59
@ AfterEach
@@ -139,8 +145,11 @@ void testRequestHandling() {
139
145
String echoMessage = "Hello MCP!" ;
140
146
Map <String , McpClientSession .RequestHandler <?>> requestHandlers = Map .of (ECHO_METHOD ,
141
147
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 ();
144
153
145
154
// Simulate incoming request
146
155
McpSchema .JSONRPCRequest request = new McpSchema .JSONRPCRequest (McpSchema .JSONRPC_VERSION , ECHO_METHOD ,
@@ -159,9 +168,11 @@ void testRequestHandling() {
159
168
void testNotificationHandling () {
160
169
Sinks .One <Object > receivedParams = Sinks .one ();
161
170
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 ();
165
176
166
177
// Simulate incoming notification from the server
167
178
Map <String , Object > notificationParams = Map .of ("status" , "ready" );
0 commit comments