From a83f41381afc524411dd774564df1c24bb80b9ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dariusz=20J=C4=99drzejczyk?= Date: Thu, 23 Jan 2025 14:57:25 +0100 Subject: [PATCH] Align abstract tests in mcp-test with mcp-core (#70) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dariusz Jędrzejczyk --- ....java => AbstractMcpAsyncClientTests.java} | 2 +- ...s.java => AbstractMcpSyncClientTests.java} | 2 +- ....java => AbstractMcpAsyncServerTests.java} | 2 +- ...s.java => AbstractMcpSyncServerTests.java} | 3 +- .../transport/BlaBlockingInputStream.java | 81 ------------------- .../client/WebFluxSseMcpAsyncClientTests.java | 2 +- .../client/WebFluxSseMcpSyncClientTests.java | 2 +- .../server/WebFluxSseMcpAsyncServerTests.java | 2 +- .../server/WebFluxSseMcpSyncServerTests.java | 2 +- .../WebMvcSseAsyncServerTransportTests.java | 2 +- .../WebMvcSseSyncServerTransportTests.java | 2 +- .../client/AbstractMcpAsyncClientTests.java | 1 + .../client/AbstractMcpSyncClientTests.java | 1 + .../server/AbstractMcpAsyncServerTests.java | 1 + .../server/AbstractMcpSyncServerTests.java | 1 + 15 files changed, 14 insertions(+), 92 deletions(-) rename mcp-test/src/main/java/org/springframework/ai/mcp/client/{BlaAbstractMcpAsyncClientTests.java => AbstractMcpAsyncClientTests.java} (99%) rename mcp-test/src/main/java/org/springframework/ai/mcp/client/{BlaAbstractMcpSyncClientTests.java => AbstractMcpSyncClientTests.java} (99%) rename mcp-test/src/main/java/org/springframework/ai/mcp/server/{BlaAbstractMcpAsyncServerTests.java => AbstractMcpAsyncServerTests.java} (99%) rename mcp-test/src/main/java/org/springframework/ai/mcp/server/{BlaAbstractMcpSyncServerTests.java => AbstractMcpSyncServerTests.java} (99%) delete mode 100644 mcp-test/src/main/java/org/springframework/ai/mcp/server/transport/BlaBlockingInputStream.java diff --git a/mcp-test/src/main/java/org/springframework/ai/mcp/client/BlaAbstractMcpAsyncClientTests.java b/mcp-test/src/main/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java similarity index 99% rename from mcp-test/src/main/java/org/springframework/ai/mcp/client/BlaAbstractMcpAsyncClientTests.java rename to mcp-test/src/main/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java index edceae9..2579f57 100644 --- a/mcp-test/src/main/java/org/springframework/ai/mcp/client/BlaAbstractMcpAsyncClientTests.java +++ b/mcp-test/src/main/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java @@ -54,7 +54,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * @author Christian Tzolov * @author Dariusz Jędrzejczyk */ -public abstract class BlaAbstractMcpAsyncClientTests { +public abstract class AbstractMcpAsyncClientTests { private McpAsyncClient mcpAsyncClient; diff --git a/mcp-test/src/main/java/org/springframework/ai/mcp/client/BlaAbstractMcpSyncClientTests.java b/mcp-test/src/main/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java similarity index 99% rename from mcp-test/src/main/java/org/springframework/ai/mcp/client/BlaAbstractMcpSyncClientTests.java rename to mcp-test/src/main/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java index 26e453c..c012612 100644 --- a/mcp-test/src/main/java/org/springframework/ai/mcp/client/BlaAbstractMcpSyncClientTests.java +++ b/mcp-test/src/main/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java @@ -50,7 +50,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * @author Christian Tzolov * @author Dariusz Jędrzejczyk */ -public abstract class BlaAbstractMcpSyncClientTests { +public abstract class AbstractMcpSyncClientTests { private McpSyncClient mcpSyncClient; diff --git a/mcp-test/src/main/java/org/springframework/ai/mcp/server/BlaAbstractMcpAsyncServerTests.java b/mcp-test/src/main/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java similarity index 99% rename from mcp-test/src/main/java/org/springframework/ai/mcp/server/BlaAbstractMcpAsyncServerTests.java rename to mcp-test/src/main/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java index 807bcc5..0c7c1aa 100644 --- a/mcp-test/src/main/java/org/springframework/ai/mcp/server/BlaAbstractMcpAsyncServerTests.java +++ b/mcp-test/src/main/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java @@ -48,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * * @author Christian Tzolov */ -public abstract class BlaAbstractMcpAsyncServerTests { +public abstract class AbstractMcpAsyncServerTests { private static final String TEST_TOOL_NAME = "test-tool"; diff --git a/mcp-test/src/main/java/org/springframework/ai/mcp/server/BlaAbstractMcpSyncServerTests.java b/mcp-test/src/main/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java similarity index 99% rename from mcp-test/src/main/java/org/springframework/ai/mcp/server/BlaAbstractMcpSyncServerTests.java rename to mcp-test/src/main/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java index 415f08e..ddb827a 100644 --- a/mcp-test/src/main/java/org/springframework/ai/mcp/server/BlaAbstractMcpSyncServerTests.java +++ b/mcp-test/src/main/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java @@ -17,7 +17,6 @@ package org.springframework.ai.mcp.server; import java.util.List; -import java.util.Map; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -46,7 +45,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * * @author Christian Tzolov */ -public abstract class BlaAbstractMcpSyncServerTests { +public abstract class AbstractMcpSyncServerTests { private static final String TEST_TOOL_NAME = "test-tool"; diff --git a/mcp-test/src/main/java/org/springframework/ai/mcp/server/transport/BlaBlockingInputStream.java b/mcp-test/src/main/java/org/springframework/ai/mcp/server/transport/BlaBlockingInputStream.java deleted file mode 100644 index 270eaae..0000000 --- a/mcp-test/src/main/java/org/springframework/ai/mcp/server/transport/BlaBlockingInputStream.java +++ /dev/null @@ -1,81 +0,0 @@ -/* -* Copyright 2024 - 2024 the original author or authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* https://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -package org.springframework.ai.mcp.server.transport; - -import java.io.IOException; -import java.io.InputStream; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; - -public class BlaBlockingInputStream extends InputStream { - - private final BlockingQueue queue = new LinkedBlockingQueue<>(); - - private volatile boolean completed = false; - - private volatile boolean closed = false; - - @Override - public int read() throws IOException { - if (closed) { - throw new IOException("Stream is closed"); - } - - try { - Integer value = queue.poll(); - if (value == null) { - if (completed) { - return -1; - } - value = queue.take(); // Blocks until data is available - if (value == null && completed) { - return -1; - } - } - return value; - } - catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new IOException("Read interrupted", e); - } - } - - public void write(int b) { - if (!closed && !completed) { - queue.offer(b); - } - } - - public void write(byte[] data) { - if (!closed && !completed) { - for (byte b : data) { - queue.offer((int) b & 0xFF); - } - } - } - - public void complete() { - this.completed = true; - } - - @Override - public void close() { - this.closed = true; - this.completed = true; - this.queue.clear(); - } - -} \ No newline at end of file diff --git a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpAsyncClientTests.java b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpAsyncClientTests.java index 0a15af2..761dd6a 100644 --- a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpAsyncClientTests.java +++ b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpAsyncClientTests.java @@ -30,7 +30,7 @@ import org.springframework.web.reactive.function.client.WebClient; * @author Christian Tzolov */ @Timeout(15) // Giving extra time beyond the client timeout -class WebFluxSseMcpAsyncClientTests extends BlaAbstractMcpAsyncClientTests { +class WebFluxSseMcpAsyncClientTests extends AbstractMcpAsyncClientTests { static String host = "http://localhost:3001"; diff --git a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpSyncClientTests.java b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpSyncClientTests.java index 2e1a4d9..41153af 100644 --- a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpSyncClientTests.java +++ b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/client/WebFluxSseMcpSyncClientTests.java @@ -30,7 +30,7 @@ import org.springframework.web.reactive.function.client.WebClient; * @author Christian Tzolov */ @Timeout(15) // Giving extra time beyond the client timeout -class WebFluxSseMcpSyncClientTests extends BlaAbstractMcpSyncClientTests { +class WebFluxSseMcpSyncClientTests extends AbstractMcpSyncClientTests { static String host = "http://localhost:3001"; diff --git a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpAsyncServerTests.java b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpAsyncServerTests.java index 753216a..b90c9a5 100644 --- a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpAsyncServerTests.java +++ b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpAsyncServerTests.java @@ -33,7 +33,7 @@ import org.springframework.web.reactive.function.server.RouterFunctions; * @author Christian Tzolov */ @Timeout(15) // Giving extra time beyond the client timeout -class WebFluxSseMcpAsyncServerTests extends BlaAbstractMcpAsyncServerTests { +class WebFluxSseMcpAsyncServerTests extends AbstractMcpAsyncServerTests { private static final int PORT = 8181; diff --git a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpSyncServerTests.java b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpSyncServerTests.java index 097ed77..048d639 100644 --- a/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpSyncServerTests.java +++ b/mcp-transport/mcp-webflux-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebFluxSseMcpSyncServerTests.java @@ -33,7 +33,7 @@ import org.springframework.web.reactive.function.server.RouterFunctions; * @author Christian Tzolov */ @Timeout(15) // Giving extra time beyond the client timeout -class WebFluxSseMcpSyncServerTests extends BlaAbstractMcpSyncServerTests { +class WebFluxSseMcpSyncServerTests extends AbstractMcpSyncServerTests { private static final int PORT = 8182; diff --git a/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseAsyncServerTransportTests.java b/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseAsyncServerTransportTests.java index 18dcd16..374a5c5 100644 --- a/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseAsyncServerTransportTests.java +++ b/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseAsyncServerTransportTests.java @@ -33,7 +33,7 @@ import org.springframework.web.servlet.function.RouterFunction; import org.springframework.web.servlet.function.ServerResponse; @Timeout(15) -class WebMvcSseAsyncServerTransportTests extends BlaAbstractMcpAsyncServerTests { +class WebMvcSseAsyncServerTransportTests extends AbstractMcpAsyncServerTests { private static final String MESSAGE_ENDPOINT = "/mcp/message"; diff --git a/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseSyncServerTransportTests.java b/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseSyncServerTransportTests.java index fb3926d..2c44c57 100644 --- a/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseSyncServerTransportTests.java +++ b/mcp-transport/mcp-webmvc-sse-transport/src/test/java/org/springframework/ai/mcp/server/WebMvcSseSyncServerTransportTests.java @@ -33,7 +33,7 @@ import org.springframework.web.servlet.function.RouterFunction; import org.springframework.web.servlet.function.ServerResponse; @Timeout(15) -class WebMvcSseSyncServerTransportTests extends BlaAbstractMcpSyncServerTests { +class WebMvcSseSyncServerTransportTests extends AbstractMcpSyncServerTests { private static final String MESSAGE_ENDPOINT = "/mcp/message"; diff --git a/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java b/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java index 2579f57..0d7fd0b 100644 --- a/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java +++ b/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpAsyncClientTests.java @@ -54,6 +54,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * @author Christian Tzolov * @author Dariusz Jędrzejczyk */ +// KEEP IN SYNC with the class in mcp-test module public abstract class AbstractMcpAsyncClientTests { private McpAsyncClient mcpAsyncClient; diff --git a/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java b/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java index c012612..c046b9e 100644 --- a/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java +++ b/mcp/src/test/java/org/springframework/ai/mcp/client/AbstractMcpSyncClientTests.java @@ -50,6 +50,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * @author Christian Tzolov * @author Dariusz Jędrzejczyk */ +// KEEP IN SYNC with the class in mcp-test module public abstract class AbstractMcpSyncClientTests { private McpSyncClient mcpSyncClient; diff --git a/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java b/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java index 0c7c1aa..869d34a 100644 --- a/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java +++ b/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpAsyncServerTests.java @@ -48,6 +48,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * * @author Christian Tzolov */ +// KEEP IN SYNC with the class in mcp-test module public abstract class AbstractMcpAsyncServerTests { private static final String TEST_TOOL_NAME = "test-tool"; diff --git a/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java b/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java index ddb827a..f627bdc 100644 --- a/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java +++ b/mcp/src/test/java/org/springframework/ai/mcp/server/AbstractMcpSyncServerTests.java @@ -45,6 +45,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; * * @author Christian Tzolov */ +// KEEP IN SYNC with the class in mcp-test module public abstract class AbstractMcpSyncServerTests { private static final String TEST_TOOL_NAME = "test-tool";