forked from kimhyungsik/ax_hub_mcp_tool
fix: align tool validation and source updates with MCP SDK
This commit is contained in:
@@ -6,12 +6,14 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.shinhanlife.dap.lib.util.JsonSchemaGenerator;
|
||||
import io.shinhanlife.dap.lib.util.ToolSchemaResolver;
|
||||
import io.shinhanlife.dap.lib.annotation.ToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.impl.ClaimSearchSchemaSampleUseCaseImpl;
|
||||
import io.shinhanlife.dap.lib.validation.ToolArgumentSchemaValidator;import io.shinhanlife.dap.mcc.biz.cmm.usecase.ClaimSearchSchemaSampleUseCase;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.ai.mcp.annotation.McpTool;
|
||||
|
||||
class ClaimSearchRequestSchemaTest {
|
||||
|
||||
@@ -33,10 +35,11 @@ class ClaimSearchRequestSchemaTest {
|
||||
void resolvesSchemaFromToolModuleResource() throws Exception {
|
||||
Method method = ClaimSearchSchemaSampleUseCase.class
|
||||
.getDeclaredMethod("search", ClaimSearchRequest.class);
|
||||
McpFunction function = method.getAnnotation(McpFunction.class);
|
||||
McpTool function = method.getAnnotation(McpTool.class);
|
||||
ToolHint hint = method.getAnnotation(ToolHint.class);
|
||||
|
||||
Map<String, Object> schema = new ToolSchemaResolver(new ObjectMapper())
|
||||
.resolve(function, ClaimSearchRequest.class);
|
||||
.resolve(function, hint, ClaimSearchRequest.class);
|
||||
|
||||
assertEquals("https://json-schema.org/draft/2020-12/schema", schema.get("$schema"));
|
||||
assertTrue(schema.containsKey("anyOf"));
|
||||
@@ -47,8 +50,10 @@ class ClaimSearchRequestSchemaTest {
|
||||
void resolvesOutputSchemaFromToolModuleResource() throws Exception {
|
||||
Method method = ClaimSearchSchemaSampleUseCase.class
|
||||
.getDeclaredMethod("search", ClaimSearchRequest.class);
|
||||
McpFunction function = method.getAnnotation(McpFunction.class);
|
||||
Map<String, Object> schema = new ToolSchemaResolver(new ObjectMapper()).resolveOutput(function);
|
||||
McpTool function = method.getAnnotation(McpTool.class);
|
||||
ToolHint hint = method.getAnnotation(ToolHint.class);
|
||||
Map<String, Object> schema = new ToolSchemaResolver(new ObjectMapper())
|
||||
.resolveOutput(function, ClaimSearchResponse.class, hint);
|
||||
assertEquals("https://json-schema.org/draft/2020-12/schema", schema.get("$schema"));
|
||||
assertTrue(properties(schema).containsKey("resultCode"));
|
||||
assertTrue(properties(schema).containsKey("statusLabel"));
|
||||
@@ -61,7 +66,8 @@ class ClaimSearchRequestSchemaTest {
|
||||
Method method = ClaimSearchSchemaSampleUseCase.class
|
||||
.getDeclaredMethod("search", ClaimSearchRequest.class);
|
||||
Map<String, Object> schema = new ToolSchemaResolver(new ObjectMapper())
|
||||
.resolveOutput(method.getAnnotation(McpFunction.class));
|
||||
.resolveOutput(method.getAnnotation(McpTool.class), ClaimSearchResponse.class,
|
||||
method.getAnnotation(ToolHint.class));
|
||||
|
||||
ClaimSearchResponse response = new ClaimSearchSchemaSampleUseCaseImpl().search(new ClaimSearchRequest());
|
||||
ToolArgumentSchemaValidator validator = new ToolArgumentSchemaValidator(new ObjectMapper());
|
||||
|
||||
Reference in New Issue
Block a user