diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/test/java/com/viewsh/module/ops/service/order/OpsOrderServiceTest.java b/viewsh-module-ops/viewsh-module-ops-biz/src/test/java/com/viewsh/module/ops/service/order/OpsOrderServiceTest.java index 0e3da90..bb32de1 100644 --- a/viewsh-module-ops/viewsh-module-ops-biz/src/test/java/com/viewsh/module/ops/service/order/OpsOrderServiceTest.java +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/test/java/com/viewsh/module/ops/service/order/OpsOrderServiceTest.java @@ -401,4 +401,29 @@ public class OpsOrderServiceTest { verify(orderLifecycleManager, never()).cancelOrder(anyLong(), anyLong(), any(OperatorTypeEnum.class), anyString()); } + @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.ADMIN, 1002L)); + + // Then + verify(orderStateMachine, times(1)).transition( + eq(testOrder), + eq(WorkOrderStatusEnum.DISPATCHED), + eq(OperatorTypeEnum.ADMIN), + eq(1002L), + eq("从队列分配") + ); + assertEquals(2001L, testOrder.getAssigneeId()); + } + }