package com.zy.asrs.task.handler;
|
|
import com.zy.asrs.entity.BasCrnp;
|
import com.zy.asrs.entity.LocDetl;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.service.BasCrnpService;
|
import com.zy.asrs.service.LocDetlService;
|
import com.zy.asrs.service.LocMastService;
|
import com.zy.asrs.service.WorkService;
|
import com.zy.asrs.service.WrkMastService;
|
import com.zy.asrs.task.support.AutoFrontLocMoveSettings;
|
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.mockito.InjectMocks;
|
import org.mockito.Mock;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
import java.util.Arrays;
|
import java.util.Collections;
|
|
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.Mockito.doNothing;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
@ExtendWith(MockitoExtension.class)
|
class AutoFrontLocMoveHandlerTest {
|
|
@InjectMocks
|
private AutoFrontLocMoveHandler handler;
|
@Mock
|
private BasCrnpService basCrnpService;
|
@Mock
|
private WrkMastService wrkMastService;
|
@Mock
|
private LocMastService locMastService;
|
@Mock
|
private LocDetlService locDetlService;
|
@Mock
|
private WorkService workService;
|
|
@Test
|
void shouldCreateMoveTaskForFirstFrontEmptyLoc() {
|
AutoFrontLocMoveSettings settings = new AutoFrontLocMoveSettings();
|
settings.setEnabled(true);
|
settings.setUserId(9527L);
|
|
AutoFrontLocMoveSettings.Rule rule = new AutoFrontLocMoveSettings.Rule();
|
rule.setCrnNo(1);
|
rule.setFrontRowList(Arrays.asList(1, 2));
|
settings.setRules(Collections.singletonList(rule));
|
|
BasCrnp basCrnp = new BasCrnp();
|
basCrnp.setCrnNo(1);
|
basCrnp.setInEnable("Y");
|
basCrnp.setOutEnable("Y");
|
basCrnp.setCrnSts(3);
|
basCrnp.setCrnErr(0L);
|
when(basCrnpService.selectById(1)).thenReturn(basCrnp);
|
when(wrkMastService.selectList(any())).thenReturn(Collections.emptyList());
|
|
LocMast targetLoc = buildLoc("0101010", 1, "O");
|
LocMast incompatibleSource = buildLoc("0105010", 5, "F");
|
incompatibleSource.setWhsType(2L);
|
LocMast compatibleSource = buildLoc("0106010", 6, "F");
|
|
when(locMastService.selectList(any()))
|
.thenReturn(Collections.singletonList(targetLoc))
|
.thenReturn(Arrays.asList(incompatibleSource, compatibleSource));
|
|
LocDetl locDetl = new LocDetl();
|
locDetl.setLocNo(compatibleSource.getLocNo());
|
locDetl.setFrozen(0);
|
when(locDetlService.selectList(any())).thenReturn(Collections.singletonList(locDetl));
|
|
doNothing().when(workService).locMove(compatibleSource.getLocNo(), targetLoc.getLocNo(), 9527L);
|
|
handler.start(settings);
|
|
verify(workService).locMove(compatibleSource.getLocNo(), targetLoc.getLocNo(), 9527L);
|
}
|
|
private LocMast buildLoc(String locNo, Integer row, String locSts) {
|
LocMast locMast = new LocMast();
|
locMast.setLocNo(locNo);
|
locMast.setCrnNo(1);
|
locMast.setRow1(row);
|
locMast.setBay1(1);
|
locMast.setLev1(1);
|
locMast.setGro1(1);
|
locMast.setWhsType(1L);
|
locMast.setLocType1((short) 1);
|
locMast.setLocType2((short) 1);
|
locMast.setLocType3((short) 1);
|
locMast.setOutEnable("Y");
|
locMast.setLocSts(locSts);
|
locMast.setFrozen(0);
|
return locMast;
|
}
|
}
|