package com.zy.api.service.impl; import com.zy.api.controller.params.ReceviceTaskParams; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.WorkService; import com.zy.asrs.service.WrkMastService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.test.util.ReflectionTestUtils; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class WcsApiServiceImplTest { @Mock private WrkMastService wrkMastService; @Mock private WorkService workService; private WcsApiServiceImpl service; @BeforeEach void setUp() { service = new WcsApiServiceImpl(); ReflectionTestUtils.setField(service, "wrkMastService", wrkMastService); ReflectionTestUtils.setField(service, "workService", workService); } @Test void receviceTaskFromWcs_marksOutboundStationCompleteWhenDevpCallbackArrives() { WrkMast mast = outboundMast(25L); when(wrkMastService.selectOne(any())).thenReturn(mast); when(wrkMastService.updateById(mast)).thenReturn(true); service.receviceTaskFromWcs(new ReceviceTaskParams() .setNotifyType("Devp") .setMsgType("station_out_task_run_complete") .setSuperTaskNo("7597")); assertEquals(Long.valueOf(26L), mast.getWrkSts()); verify(wrkMastService).updateById(mast); } @Test void receviceTaskFromWcs_allowsTaskCompleteAfterStationOutComplete() { WrkMast mast = outboundMast(26L); when(wrkMastService.selectOne(any())).thenReturn(mast); when(wrkMastService.updateById(mast)).thenReturn(true); service.receviceTaskFromWcs(new ReceviceTaskParams() .setNotifyType("task") .setMsgType("task_complete") .setSuperTaskNo("7597")); assertEquals(Long.valueOf(14L), mast.getWrkSts()); verify(wrkMastService).updateById(mast); } private static WrkMast outboundMast(Long wrkSts) { WrkMast mast = new WrkMast(); mast.setWrkNo(7597); mast.setIoType(101); mast.setWrkSts(wrkSts); return mast; } }