Skip to content

Commit 21ca745

Browse files
committed
test: consume task streams before assertions
1 parent 97e6457 commit 21ca745

File tree

2 files changed

+8
-14
lines changed

2 files changed

+8
-14
lines changed

mcp-core/src/test/java/io/modelcontextprotocol/server/AbstractMcpClientServerIntegrationTests.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.util.function.BiFunction;
2222
import java.util.function.Function;
2323
import java.util.stream.Collectors;
24-
import java.util.stream.Stream;
2524

2625
import io.modelcontextprotocol.client.McpClient;
2726
import io.modelcontextprotocol.client.McpSyncClient;
@@ -1883,8 +1882,7 @@ protected McpSyncClient createTaskClient(String clientType, String name, ClientC
18831882
}
18841883

18851884
/** Extracts the task ID from a list of response messages. */
1886-
protected String extractTaskId(Stream<ResponseMessage<CallToolResult>> messageStream) {
1887-
List<ResponseMessage<CallToolResult>> messages = messageStream.toList();
1885+
protected String extractTaskId(List<ResponseMessage<CallToolResult>> messages) {
18881886
for (var msg : messages) {
18891887
if (msg instanceof TaskCreatedMessage<CallToolResult> tcm) {
18901888
return tcm.task().taskId();
@@ -1894,8 +1892,7 @@ protected String extractTaskId(Stream<ResponseMessage<CallToolResult>> messageSt
18941892
}
18951893

18961894
/** Extracts all task statuses from a list of response messages. */
1897-
protected List<TaskStatus> extractTaskStatuses(Stream<ResponseMessage<CallToolResult>> messageStream) {
1898-
List<ResponseMessage<CallToolResult>> messages = messageStream.toList();
1895+
protected List<TaskStatus> extractTaskStatuses(List<ResponseMessage<CallToolResult>> messages) {
18991896
List<TaskStatus> statuses = new ArrayList<>();
19001897
for (var msg : messages) {
19011898
if (msg instanceof TaskCreatedMessage<CallToolResult> tcm) {
@@ -2018,7 +2015,7 @@ void testElicitationDuringTaskExecution(String clientType) throws InterruptedExc
20182015
client.initialize();
20192016

20202017
var request = new McpSchema.CallToolRequest("needs-input-tool", Map.of(), DEFAULT_TASK_METADATA, null);
2021-
var messages = client.callToolStream(request);
2018+
var messages = client.callToolStream(request).toList();
20222019
var observedStates = extractTaskStatuses(messages);
20232020

20242021
assertThat(taskIdRef.get()).as("Task ID should have been set").isNotNull();
@@ -2157,7 +2154,7 @@ void testCreateTaskHandlerWithTaskMetadata(String clientType) {
21572154

21582155
// Call with task metadata - should use createTaskHandler directly
21592156
var request = new McpSchema.CallToolRequest("create-task-tool", Map.of(), DEFAULT_TASK_METADATA, null);
2160-
var messages = client.callToolStream(request);
2157+
var messages = client.callToolStream(request).toList();
21612158

21622159
assertThat(createTaskHandlerInvoked.get()).as("createTaskHandler should have been invoked").isTrue();
21632160
assertThat(messages).as("Should have response messages").isNotEmpty();

mcp-test/src/main/java/io/modelcontextprotocol/AbstractMcpClientServerIntegrationTests.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.function.BiFunction;
2323
import java.util.function.Function;
2424
import java.util.stream.Collectors;
25-
import java.util.stream.Stream;
2625

2726
import io.modelcontextprotocol.client.McpClient;
2827
import io.modelcontextprotocol.client.McpSyncClient;
@@ -1846,8 +1845,7 @@ protected McpSyncClient createTaskClient(String clientType, String name, ClientC
18461845
}
18471846

18481847
/** Extracts the task ID from a list of response messages. */
1849-
protected String extractTaskId(Stream<ResponseMessage<CallToolResult>> messageStream) {
1850-
List<ResponseMessage<CallToolResult>> messages = messageStream.toList();
1848+
protected String extractTaskId(List<ResponseMessage<CallToolResult>> messages) {
18511849
for (var msg : messages) {
18521850
if (msg instanceof TaskCreatedMessage<CallToolResult> tcm) {
18531851
return tcm.task().taskId();
@@ -1857,8 +1855,7 @@ protected String extractTaskId(Stream<ResponseMessage<CallToolResult>> messageSt
18571855
}
18581856

18591857
/** Extracts all task statuses from a list of response messages. */
1860-
protected List<TaskStatus> extractTaskStatuses(Stream<ResponseMessage<CallToolResult>> messageStream) {
1861-
List<ResponseMessage<CallToolResult>> messages = messageStream.toList();
1858+
protected List<TaskStatus> extractTaskStatuses(List<ResponseMessage<CallToolResult>> messages) {
18621859
List<TaskStatus> statuses = new ArrayList<>();
18631860
for (var msg : messages) {
18641861
if (msg instanceof TaskCreatedMessage<CallToolResult> tcm) {
@@ -2106,7 +2103,7 @@ void testElicitationDuringTaskExecution(String clientType) throws InterruptedExc
21062103
client.initialize();
21072104

21082105
var request = new McpSchema.CallToolRequest("needs-input-tool", Map.of(), DEFAULT_TASK_METADATA, null);
2109-
var messages = client.callToolStream(request);
2106+
var messages = client.callToolStream(request).toList();
21102107
var observedStates = extractTaskStatuses(messages);
21112108

21122109
if (taskIdRef.get() != null) {
@@ -2245,7 +2242,7 @@ void testCreateTaskHandlerWithTaskMetadata(String clientType) {
22452242

22462243
// Call with task metadata - should use createTaskHandler directly
22472244
var request = new McpSchema.CallToolRequest("create-task-tool", Map.of(), DEFAULT_TASK_METADATA, null);
2248-
var messages = client.callToolStream(request);
2245+
var messages = client.callToolStream(request).toList();
22492246

22502247
assertThat(createTaskHandlerInvoked.get()).as("createTaskHandler should have been invoked").isTrue();
22512248
assertThat(messages).as("Should have response messages").isNotEmpty();

0 commit comments

Comments
 (0)