test: Add audit log test case to CleanOrderEndToEndTest

This commit is contained in:
lzh
2026-01-23 14:58:30 +08:00
parent 382e4d6ae2
commit bd8dd73e50

View File

@@ -61,6 +61,9 @@ public class CleanOrderEndToEndTest {
@InjectMocks
private CleanOrderConfirmEventHandler confirmEventHandler;
@InjectMocks
private CleanOrderAuditEventHandler auditEventHandler;
@Mock
private CleanOrderEventListener cleanOrderEventListener;
@@ -141,6 +144,13 @@ public class CleanOrderEndToEndTest {
// 注入 CleanOrderEventListener
injectField(cleanOrderService, "cleanOrderEventListener", cleanOrderEventListener);
// 注入 CleanOrderAuditEventHandler 依赖
injectField(auditEventHandler, "eventLogRecorder", eventLogRecorder);
injectField(auditEventHandler, "voiceBroadcastService", voiceBroadcastService);
injectField(auditEventHandler, "opsOrderMapper", opsOrderMapper);
injectField(auditEventHandler, "stringRedisTemplate", stringRedisTemplate);
injectField(auditEventHandler, "objectMapper", objectMapper);
// Stub IotDeviceControlApi for resetTrafficCounter
lenient().when(iotDeviceControlApi.resetTrafficCounter(any()))
.thenReturn(CommonResult.success(true));
@@ -351,6 +361,36 @@ public class CleanOrderEndToEndTest {
// 3. 验证触发了自动调度下一单
verify(dispatchEngine).autoDispatchNext(eq(orderId), eq(2001L));
}
@Test
void testAudit_TTS_Request() throws Exception {
// Prepare Event
String eventJson = "{" +
"\"eventId\":\"evt-audit-01\"," +
"\"auditType\":\"TTS_REQUEST\"," +
"\"deviceId\":5001," +
"\"message\":\"TTS Message\"," +
"\"data\":{\"tts\":\"请回到作业区域\"}" +
"}";
// Execute
auditEventHandler.onMessage(eventJson);
// Verify
// 1. Log recorded
verify(eventLogRecorder).info(
eq("clean"),
any(),
eq("TTS_REQUEST"),
contains("TTS Message"),
any(),
eq(5001L),
any()
);
// 2. TTS sent
verify(voiceBroadcastService).broadcast(eq(5001L), contains("请回到作业区域"));
}
// 简单的反射注入辅助方法
private void injectField(Object target, String fieldName, Object value) {