package cn.iocoder.yudao.module.mes.service.dv.meteringcheck;
|
|
import cn.iocoder.yudao.module.mes.controller.admin.dv.meteringcheck.vo.MesDvMeteringCheckSaveReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dv.metering.MesDvMeteringDO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dv.meteringcheck.MesDvMeteringCheckDO;
|
import cn.iocoder.yudao.module.mes.dal.mysql.dv.meteringcheck.MesDvMeteringCheckMapper;
|
import cn.iocoder.yudao.module.mes.service.dv.metering.MesDvMeteringService;
|
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.mockito.*;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
import java.time.LocalDate;
|
import static org.junit.jupiter.api.Assertions.*;
|
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.Mockito.*;
|
|
@ExtendWith(MockitoExtension.class)
|
class MesDvMeteringCheckManualUserTest {
|
@Mock MesDvMeteringCheckMapper mapper;
|
@Mock MesDvMeteringService meteringService;
|
@InjectMocks MesDvMeteringCheckServiceImpl service;
|
private MesDvMeteringCheckSaveReqVO request() {
|
var req = new MesDvMeteringCheckSaveReqVO(); req.setMeteringId(1L); req.setCheckCode("CK01");
|
req.setCheckDate(LocalDate.of(2026,10,12)); req.setCheckResult(1); req.setCheckUserId(7L);
|
var metering = new MesDvMeteringDO(); metering.setCheckCycleCount(12);
|
when(meteringService.getMetering(1L)).thenReturn(metering); return req;
|
}
|
@Test void storesManualNameWithoutUserLinkAndKeepsCalibrationDateCalculation() {
|
var req = request(); req.setCheckUserName(" 外部检验员张三 ");
|
service.createMeteringCheck(req);
|
var record = ArgumentCaptor.forClass(MesDvMeteringCheckDO.class); verify(mapper).insert(record.capture());
|
assertEquals("外部检验员张三", record.getValue().getCheckUserName()); assertNull(record.getValue().getCheckUserId());
|
assertEquals(LocalDate.of(2027,10,12), record.getValue().getNextCheckDate());
|
}
|
@Test void permitsClearingManualNameAndRemovesOldUserSelectionOnEdit() {
|
var req = request(); req.setId(9L); req.setCheckUserName(" ");
|
when(mapper.selectById(9L)).thenReturn(new MesDvMeteringCheckDO()); service.updateMeteringCheck(req);
|
var record = ArgumentCaptor.forClass(MesDvMeteringCheckDO.class); verify(mapper).updateById(record.capture());
|
assertEquals("", record.getValue().getCheckUserName()); assertNull(record.getValue().getCheckUserId());
|
}
|
}
|