test: add cleaning flow tests for OpsOrderService

This commit is contained in:
lzh
2026-01-20 18:07:05 +08:00
parent c2bf98be5a
commit 22fad4ad31

View File

@@ -84,9 +84,34 @@ public class OpsOrderServiceTest {
// 模拟 MyBatis Plus 的 ID 自动回填
if (order.getId() == null) {
order.setId(1L);
}
@Test
void testAssignOrder_FromQueuedStatus_Success() {
// Given
testOrder.setStatus(WorkOrderStatusEnum.QUEUED.getStatus());
OpsOrderAssignReqDTO assignReq = new OpsOrderAssignReqDTO();
assignReq.setOrderId(1L);
assignReq.setAssigneeId(2001L);
assignReq.setRemark("排队后分配");
when(opsOrderMapper.selectById(1L)).thenReturn(testOrder);
// When
assertDoesNotThrow(() -> opsOrderService.assignOrder(assignReq, OperatorTypeEnum.SYSTEM, null));
// Then
verify(orderStateMachine, times(1)).transition(
eq(testOrder),
eq(WorkOrderStatusEnum.DISPATCHED),
eq(OperatorTypeEnum.SYSTEM),
eq(null),
eq("排队后分配")
);
assertEquals(2001L, testOrder.getAssigneeId());
}
}
return 1;
});
lenient().doAnswer(invocation -> {
OpsOrderDO order = invocation.getArgument(0);
order.setStatus(WorkOrderStatusEnum.PENDING.getStatus());