package com.zy.asrs.controller; import com.core.common.R; import com.zy.asrs.domain.param.StationCommandMoveParam; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.service.BasDevpService; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.thread.StationThread; import org.junit.jupiter.api.Test; import org.springframework.test.util.ReflectionTestUtils; import java.util.Collections; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; class StationControllerTest { @Test void commandClearPath_callsThreadClearPath() { StationController controller = new StationController(); BasDevpService basDevpService = mock(BasDevpService.class); StationThread stationThread = mock(StationThread.class); ReflectionTestUtils.setField(controller, "basDevpService", basDevpService); BasDevp basDevp = new BasDevp(); basDevp.setStationList("[{\"deviceNo\":1,\"stationId\":145}]"); when(basDevpService.list(any(com.baomidou.mybatisplus.core.conditions.Wrapper.class))) .thenReturn(Collections.singletonList(basDevp)); when(stationThread.clearPath(10335)).thenReturn(true); StationCommandMoveParam param = new StationCommandMoveParam(); param.setStationId(145); param.setTaskNo(10335); SlaveConnection.put(SlaveType.Devp, 1, stationThread); try { R result = controller.commandClearPath(param); assertEquals(200, result.get("code")); verify(stationThread).clearPath(10335); } finally { SlaveConnection.remove(SlaveType.Devp, 1); } } }