package com.superbiz.agent.controller; import com.superbiz.agent.service.ChatService; import org.junit.jupiter.api.Test; import org.springframework.http.ResponseEntity; import org.springframework.test.util.ReflectionTestUtils; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verifyNoInteractions; class ChatControllerTest { @Test void blankChatRequestReturnsErrorBeforeCreatingRun() { ChatController controller = new ChatController(); ChatService chatService = mock(ChatService.class); ReflectionTestUtils.setField(controller, "chatService", chatService); ChatController.ChatRequest request = new ChatController.ChatRequest(); request.setId("invalid-chat-session"); request.setQuestion(" "); ResponseEntity> response = controller.chat(request); ChatController.ChatResponse body = response.getBody().getData(); assertFalse(body.isSuccess()); assertEquals("问题内容不能为空", body.getErrorMessage()); verifyNoInteractions(chatService); } @Test void aiOpsMetadataMessageCarriesSessionAndRunId() { ChatController.SseMessage message = ChatController.SseMessage.metadata("session-1", "run-1"); assertEquals("metadata", message.getType()); assertEquals("session-1", message.getSessionId()); assertEquals("run-1", message.getRunId()); } }