云
2 天以前 87733eb3623593da247c051593d64b8ff9e1d3a4
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/MesQcSeedIndicatorRangeServiceTest.java
@@ -1,34 +1,37 @@
package cn.iocoder.yudao.module.mes.service.qc.seedquality;
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedIndicatorRangeSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedIndicatorRangeDO;
import cn.iocoder.yudao.module.mes.dal.mysql.qc.seedquality.MesQcSeedIndicatorRangeMapper;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import org.junit.jupiter.api.Test;
import org.springframework.test.util.ReflectionTestUtils;
import java.math.BigDecimal;
import java.util.List;
import static org.mockito.Mockito.*;
class MesQcSeedIndicatorRangeServiceTest {
    private final MesQcSeedIndicatorRangeService service = new MesQcSeedIndicatorRangeService();
    private final MesQcSeedIndicatorRangeMapper mapper = mock(MesQcSeedIndicatorRangeMapper.class);
    private final MesMdmItemService itemService = mock(MesMdmItemService.class);
    @Test
    void savesTemplateWithoutRestrictingActualInspection() {
    void createsIndicatorRangeForProduct() {
        ReflectionTestUtils.setField(service, "mapper", mapper);
        ReflectionTestUtils.setField(service, "mdmItemService", itemService);
        MesMdmItemDO item = new MesMdmItemDO();
        item.setId(1L);
        when(itemService.getItem(1L)).thenReturn(item);
        when(mapper.selectByItemIdAndCode(1L, "purity")).thenReturn(null);
        MesQcSeedIndicatorRangeSaveReqVO request = new MesQcSeedIndicatorRangeSaveReqVO();
        request.setRanges(List.of(item("purity"), item("cleanliness"), item("germination_rate"), item("moisture")));
        service.saveRanges(request);
        verify(mapper, times(4)).insert(any(MesQcSeedIndicatorRangeDO.class));
    }
    private MesQcSeedIndicatorRangeSaveReqVO.Item item(String code) {
        MesQcSeedIndicatorRangeSaveReqVO.Item row = new MesQcSeedIndicatorRangeSaveReqVO.Item();
        row.setIndicatorCode(code);
        row.setMinValue(new BigDecimal("90"));
        row.setMaxValue(new BigDecimal("100"));
        return row;
        request.setItemId(1L);
        request.setIndicatorCode("purity");
        request.setIndicatorName("纯度");
        request.setMinValue(new BigDecimal("90"));
        request.setMaxValue(new BigDecimal("100"));
        service.create(request);
        verify(mapper, times(1)).insert(any(MesQcSeedIndicatorRangeDO.class));
    }
}