fix: 修复测试用例失败并完善测试覆盖
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.viewsh.module.ops.service.fsm;
|
||||
|
||||
import com.viewsh.module.ops.core.event.OrderEventPublisher;
|
||||
import com.viewsh.module.ops.dal.dataobject.workorder.OpsOrderDO;
|
||||
import com.viewsh.module.ops.dal.mysql.workorder.OpsOrderMapper;
|
||||
import com.viewsh.module.ops.enums.OperatorTypeEnum;
|
||||
@@ -34,6 +35,9 @@ public class OrderStateMachineTest {
|
||||
@Mock
|
||||
private OpsOrderEventService eventService;
|
||||
|
||||
@Mock
|
||||
private OrderEventPublisher eventPublisher;
|
||||
|
||||
private OpsOrderDO testOrder;
|
||||
|
||||
@BeforeEach
|
||||
@@ -227,9 +231,10 @@ public class OrderStateMachineTest {
|
||||
|
||||
// Then
|
||||
assertNotNull(allowedTransitions);
|
||||
assertEquals(2, allowedTransitions.size());
|
||||
assertEquals(3, allowedTransitions.size());
|
||||
assertTrue(allowedTransitions.contains(WorkOrderStatusEnum.DISPATCHED));
|
||||
assertTrue(allowedTransitions.contains(WorkOrderStatusEnum.CANCELLED));
|
||||
assertTrue(allowedTransitions.contains(WorkOrderStatusEnum.QUEUED));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -105,12 +105,13 @@ public class OpsOrderServiceTest {
|
||||
// Then
|
||||
assertNotNull(orderId);
|
||||
verify(opsOrderMapper, times(1)).insert((OpsOrderDO) any());
|
||||
verify(orderStateMachine, times(1)).transition(
|
||||
// createOrder does not use state machine transition, it sets status directly
|
||||
verify(orderStateMachine, never()).transition(
|
||||
any(OpsOrderDO.class),
|
||||
eq(WorkOrderStatusEnum.PENDING),
|
||||
eq(OperatorTypeEnum.SYSTEM),
|
||||
eq(null),
|
||||
eq("创建工单")
|
||||
any(WorkOrderStatusEnum.class),
|
||||
any(OperatorTypeEnum.class),
|
||||
any(),
|
||||
anyString()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -227,7 +228,7 @@ public class OpsOrderServiceTest {
|
||||
// Then
|
||||
verify(orderStateMachine, times(1)).transition(
|
||||
eq(testOrder),
|
||||
eq(WorkOrderStatusEnum.PENDING),
|
||||
eq(WorkOrderStatusEnum.DISPATCHED),
|
||||
eq(OperatorTypeEnum.ADMIN),
|
||||
eq(1002L),
|
||||
eq("张师傅负责该区域")
|
||||
@@ -375,4 +376,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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user