diff --git a/src/test/java/com/cloudhandson/vpdbackoffice/service/McpSseServiceTest.java b/src/test/java/com/cloudhandson/vpdbackoffice/service/McpSseServiceTest.java index 94939ec..b241292 100644 --- a/src/test/java/com/cloudhandson/vpdbackoffice/service/McpSseServiceTest.java +++ b/src/test/java/com/cloudhandson/vpdbackoffice/service/McpSseServiceTest.java @@ -15,6 +15,8 @@ class McpSseServiceTest { private final SelectAiService selectAiService = new CapturingSelectAiService(); private final QaVectorService qaVectorService = new CapturingQaVectorService(); private final GameScopeService gameScopeService = new CapturingGameScopeService(); + private final GameCatalogVectorService gameCatalogVectorService = + new CapturingGameCatalogVectorService(); private final McpSseService service = new McpSseService( selectAiService, objectMapper, @@ -48,7 +50,8 @@ class McpSseServiceTest { "테스트 DB 게임 범위 확인 도구입니다." ), qaVectorService, - gameScopeService + gameScopeService, + gameCatalogVectorService ); @Test @@ -56,7 +59,7 @@ class McpSseServiceTest { ObjectNode response = service.handle("default", request(1, "tools/list")); var tools = response.path("result").path("tools"); - assertThat(tools).hasSize(6); + assertThat(tools).hasSize(8); var selectAi = tools.get(0); assertThat(selectAi.path("name").asText()).isEqualTo("oracle.select_ai.test_data_text2sql"); assertThat(selectAi.path("description").asText()).contains("SGMP_POC_OCI_GPT54MINI"); @@ -102,6 +105,11 @@ class McpSseServiceTest { .isEqualTo("oracle.select_ai.test_game_scope_resolve"); assertThat(gameScope.path("inputSchema").path("required")) .extracting(node -> node.asText()).contains("question"); + + assertThat(tools.get(6).path("name").asText()) + .isEqualTo("oracle.select_ai.game_catalog_resolve"); + assertThat(tools.get(7).path("name").asText()) + .isEqualTo("oracle.select_ai.game_query_plan"); } @Test @@ -252,7 +260,7 @@ class McpSseServiceTest { private boolean showpromptCalled; private CapturingSelectAiService() { - super(null, null, null, new ObjectMapper(), null, null); + super(null, null, null, new ObjectMapper(), null, null, null); } @Override @@ -333,4 +341,24 @@ class McpSseServiceTest { )); } } + + private static final class CapturingGameCatalogVectorService + extends GameCatalogVectorService { + + private CapturingGameCatalogVectorService() { + super(null, null, new ObjectMapper()); + } + + @Override + public Resolution resolve(String token, String question, int topK) { + return new Resolution("SINGLE_GAME", java.util.List.of(new GameCandidate( + "SUPPORTED_GAME", + "SUPPORTED_GAME_ID", + "SUPPORTED_PREFIX", + "Supported game", + "Supported", + 0.1 + ))); + } + } }