package cn.iocoder.yudao.module.mes.service.md.item; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper; 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.List; import java.util.Set; import static org.junit.jupiter.api.Assertions.assertSame; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class MesMdItemServiceImplTest { @InjectMocks private MesMdItemServiceImpl itemService; @Mock private MesMdItemMapper itemMapper; @Mock private MesMdItemTypeService itemTypeService; @Test void getItemPage_excludesEquipmentAndItsChildren() { MesMdItemPageReqVO reqVO = new MesMdItemPageReqVO(); reqVO.setExcludeItemTypeCode("EQUIPMENT"); MesMdItemTypeDO equipment = new MesMdItemTypeDO().setId(100L).setCode("EQUIPMENT"); MesMdItemTypeDO equipmentChild = new MesMdItemTypeDO().setId(101L).setParentId(100L); PageResult expected = new PageResult<>(List.of(), 0L); when(itemTypeService.getItemTypeByCode("EQUIPMENT")).thenReturn(equipment); when(itemTypeService.getItemTypeChildrenList(100L)).thenReturn(List.of(equipmentChild)); when(itemMapper.selectPage(reqVO, null, Set.of(100L, 101L))).thenReturn(expected); PageResult result = itemService.getItemPage(reqVO); assertSame(expected, result); verify(itemMapper).selectPage(reqVO, null, Set.of(100L, 101L)); } }