test: Add dispatchToCleaner test case for complete coverage
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user