test(api): 补齐聚合接口控制器测试并修复参数异常语义

This commit is contained in:
2026-06-01 05:40:59 +08:00
parent eb64af9d50
commit 91e05a26cd
5 changed files with 282 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
package com.bruce.agent.controller;
import com.bruce.agent.service.IAgentMessageService;
import com.bruce.agent.service.IAgentSessionService;
import com.bruce.agent.service.IAgentWorkspaceService;
import com.bruce.agent.vo.AgentWorkspaceVO;
import com.bruce.common.handler.GlobalExceptionHandler;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
/**
* 验证 Agent 工作台聚合接口的查询参数绑定和返回结构。
*/
@ExtendWith(MockitoExtension.class)
class AgentSessionControllerTests {
private MockMvc mockMvc;
@Mock
private IAgentSessionService agentSessionService;
@Mock
private IAgentMessageService agentMessageService;
@Mock
private IAgentWorkspaceService agentWorkspaceService;
@InjectMocks
private AgentSessionController agentSessionController;
@BeforeEach
void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(agentSessionController)
.setControllerAdvice(new GlobalExceptionHandler())
.build();
}
@Test
void workspaceShouldReturnStructuredAggregateView() throws Exception {
AgentWorkspaceVO workspace = new AgentWorkspaceVO();
workspace.setAgentId(1001L);
workspace.setAgentCode("presale_agent");
workspace.setAgentName("售前问答 Agent");
workspace.setSessionId(2001L);
workspace.setSessionCode("session_001");
workspace.setLatestRequestId("req-1001");
workspace.setCitationCount(2);
when(agentWorkspaceService.getWorkspace(1001L, null)).thenReturn(workspace);
mockMvc.perform(get("/api/agent-sessions/workspace").param("agentId", "1001"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.resultcode").value("0"))
.andExpect(jsonPath("$.data.agentId").value(1001))
.andExpect(jsonPath("$.data.agentName").value("售前问答 Agent"))
.andExpect(jsonPath("$.data.latestRequestId").value("req-1001"));
}
}