refs #722: externalize backoffice customer configuration
This commit is contained in:
@@ -2,6 +2,7 @@ package com.cloudhandson.vpdbackoffice.service;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import com.cloudhandson.vpdbackoffice.config.BackofficeProperties;
|
||||
import com.cloudhandson.vpdbackoffice.config.McpProperties;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
@@ -10,7 +11,7 @@ import org.junit.jupiter.api.Test;
|
||||
class McpSseServiceTest {
|
||||
|
||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
private final SmilegateSelectAiService selectAiService = new CapturingSmilegateSelectAiService();
|
||||
private final SelectAiService selectAiService = new CapturingSelectAiService();
|
||||
private final McpSseService service = new McpSseService(
|
||||
selectAiService,
|
||||
objectMapper,
|
||||
@@ -20,6 +21,12 @@ class McpSseServiceTest {
|
||||
null,
|
||||
null,
|
||||
new BackofficeProperties.SelectAi("", "", "", "SGMP_POC_OCI_GPT54MINI")
|
||||
),
|
||||
new McpProperties(
|
||||
"oracle.select_ai.test_data_text2sql",
|
||||
"테스트 데이터 Text2SQL",
|
||||
"테스트 데이터용 읽기 전용 SQL을 생성하고 실행합니다.",
|
||||
"테스트 데이터의 조회 내용을 입력합니다."
|
||||
)
|
||||
);
|
||||
|
||||
@@ -30,7 +37,7 @@ class McpSseServiceTest {
|
||||
var tools = response.path("result").path("tools");
|
||||
assertThat(tools).hasSize(1);
|
||||
var selectAi = tools.get(0);
|
||||
assertThat(selectAi.path("name").asText()).isEqualTo("oracle.select_ai.smilegate_game_text2sql");
|
||||
assertThat(selectAi.path("name").asText()).isEqualTo("oracle.select_ai.test_data_text2sql");
|
||||
assertThat(selectAi.path("description").asText()).contains("SGMP_POC_OCI_GPT54MINI");
|
||||
assertThat(selectAi.path("inputSchema").path("required"))
|
||||
.extracting(node -> node.asText())
|
||||
@@ -44,14 +51,13 @@ class McpSseServiceTest {
|
||||
void callsVpdSelectAiThroughOrdsService() {
|
||||
ObjectNode request = request(2, "tools/call");
|
||||
ObjectNode params = (ObjectNode) request.putObject("params");
|
||||
params.put("name", "oracle.select_ai.smilegate_game_text2sql");
|
||||
params.put("name", "oracle.select_ai.test_data_text2sql");
|
||||
ObjectNode arguments = params.putObject("arguments");
|
||||
arguments.put("prompt", "카제나 AU를 조회해 줘");
|
||||
|
||||
ObjectNode response = service.handle("default", request, "user-bearer");
|
||||
|
||||
CapturingSmilegateSelectAiService agentService =
|
||||
(CapturingSmilegateSelectAiService) selectAiService;
|
||||
CapturingSelectAiService agentService = (CapturingSelectAiService) selectAiService;
|
||||
assertThat(agentService.bearerToken).isEqualTo("user-bearer");
|
||||
assertThat(agentService.prompt).isEqualTo("카제나 AU를 조회해 줘");
|
||||
assertThat(response.path("error").isMissingNode()).isTrue();
|
||||
@@ -69,7 +75,7 @@ class McpSseServiceTest {
|
||||
void returnsToolLevelDeniedResultWhenVpdTokenIsMissing() {
|
||||
ObjectNode request = request(3, "tools/call");
|
||||
ObjectNode params = (ObjectNode) request.putObject("params");
|
||||
params.put("name", "oracle.select_ai.smilegate_game_text2sql");
|
||||
params.put("name", "oracle.select_ai.test_data_text2sql");
|
||||
params.putObject("arguments").put("prompt", "카제나 AU를 조회해 줘");
|
||||
|
||||
ObjectNode response = service.handle("default", request, "");
|
||||
@@ -89,12 +95,12 @@ class McpSseServiceTest {
|
||||
return request;
|
||||
}
|
||||
|
||||
private static final class CapturingSmilegateSelectAiService extends SmilegateSelectAiService {
|
||||
private static final class CapturingSelectAiService extends SelectAiService {
|
||||
|
||||
private String bearerToken;
|
||||
private String prompt;
|
||||
|
||||
private CapturingSmilegateSelectAiService() {
|
||||
private CapturingSelectAiService() {
|
||||
super(null, null, null, new ObjectMapper());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user