test: Add dispatchToCleaner test case for complete coverage

This commit is contained in:
lzh
2026-01-25 00:00:00 +08:00
parent 0813856b18
commit ea1d369e61

View File

@@ -448,6 +448,34 @@ public class CleanOrderEndToEndTest {
verify(cleanOrderEventListener).sendPriorityUpgradeNotification(eq(2001L), eq("WO-P2"));
}
@Test
void testDispatchToCleaner() {
Long queueId = 888L;
Long orderId = 1005L;
Long cleanerId = 2005L;
// Mock Queue Data
OrderQueueDTO queueDTO = new OrderQueueDTO();
queueDTO.setId(queueId);
queueDTO.setOpsOrderId(orderId);
queueDTO.setUserId(cleanerId);
when(orderQueueService.getById(queueId)).thenReturn(queueDTO);
// Execute
cleanOrderService.dispatchToCleaner(queueId);
// Verify
ArgumentCaptor<OrderTransitionRequest> reqCaptor = ArgumentCaptor.forClass(OrderTransitionRequest.class);
verify(orderLifecycleManager).dispatch(reqCaptor.capture());
OrderTransitionRequest req = reqCaptor.getValue();
assertEquals(orderId, req.getOrderId());
assertEquals(cleanerId, req.getAssigneeId());
assertEquals(queueId, req.getQueueId());
assertEquals(WorkOrderStatusEnum.DISPATCHED, req.getTargetStatus());
}
// 简单的反射注入辅助方法
private void injectField(Object target, String fieldName, Object value) {
try {