云
2 天以前 657698fd2fb32794932474648dbaee9e284e38c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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());
    }
}