| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package com.zksy.WaterSupply;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.zksy.WaterSupply.WaterPipeInfo.domain.WaterPipeInfo;
- import com.zksy.WaterSupply.WaterPipeInfo.mapper.WaterPipeInfoMapper;
- import com.zksy.WaterSupply.WaterPipeInfo.service.impl.WaterPipeInfoServiceImpl;
- import com.zksy.WaterSupply.WaterPlantInfo.domain.WaterPlantInfo;
- import com.zksy.WaterSupply.WaterPlantInfo.mapper.WaterPlantInfoMapper;
- import com.zksy.WaterSupply.WaterPlantInfo.service.impl.WaterPlantInfoServiceImpl;
- import com.zksy.WaterSupply.WaterPumpStation.domain.WaterPumpStation;
- import com.zksy.WaterSupply.WaterPumpStation.mapper.WaterPumpStationMapper;
- import com.zksy.WaterSupply.WaterPumpStation.service.impl.WaterPumpStationServiceImpl;
- import com.zksy.WaterSupply.WaterSourceInfo.domain.WaterSourceInfo;
- import com.zksy.WaterSupply.WaterSourceInfo.mapper.WaterSourceInfoMapper;
- import com.zksy.WaterSupply.WaterSourceInfo.service.impl.WaterSourceInfoServiceImpl;
- import com.zksy.WaterSupply.WaterUserInfo.domain.WaterUserInfo;
- import com.zksy.WaterSupply.WaterUserInfo.mapper.WaterUserInfoMapper;
- import com.zksy.WaterSupply.WaterUserInfo.service.impl.WaterUserInfoServiceImpl;
- import com.zksy.WaterSupply.export.WaterPipeExportDTO;
- import org.junit.jupiter.api.Test;
- import org.mockito.ArgumentMatchers;
- import org.springframework.test.util.ReflectionTestUtils;
- import java.util.List;
- import java.io.InputStream;
- import java.nio.charset.StandardCharsets;
- import java.lang.reflect.Field;
- import static org.junit.jupiter.api.Assertions.assertEquals;
- import static org.mockito.Mockito.mock;
- import static org.mockito.Mockito.verify;
- import static org.mockito.Mockito.when;
- class WaterFacilityQueryServiceTest {
- @Test
- void pipeQueryUsesDatabasePaginationAndFilters() {
- WaterPipeInfoMapper mapper = mock(WaterPipeInfoMapper.class);
- Page<WaterPipeInfo> expected = pageOf(new WaterPipeInfo());
- when(mapper.selectPage(ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(expected);
- WaterPipeInfoServiceImpl service = new WaterPipeInfoServiceImpl();
- ReflectionTestUtils.setField(service, "baseMapper", mapper);
- IPage<WaterPipeInfo> actual = service.queryPage(new Page<>(2, 20), "P-1", "主干", "PE", "0", 300, 2020, null, null);
- assertEquals(expected, actual);
- verify(mapper).selectPage(ArgumentMatchers.any(), ArgumentMatchers.any());
- }
- @Test
- void plantQueryUsesDatabasePagination() {
- WaterPlantInfoMapper mapper = mock(WaterPlantInfoMapper.class);
- Page<WaterPlantInfo> expected = pageOf(new WaterPlantInfo());
- when(mapper.selectPage(ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(expected);
- WaterPlantInfoServiceImpl service = new WaterPlantInfoServiceImpl();
- ReflectionTestUtils.setField(service, "baseMapper", mapper);
- assertEquals(expected, service.queryPage(new Page<>(3, 5), "P", "厂", "0", "负责人", null, null));
- verify(mapper).selectPage(ArgumentMatchers.any(), ArgumentMatchers.any());
- }
- @Test
- void pumpStationQueryUsesDatabasePagination() {
- WaterPumpStationMapper mapper = mock(WaterPumpStationMapper.class);
- Page<WaterPumpStation> expected = pageOf(new WaterPumpStation());
- when(mapper.selectPage(ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(expected);
- WaterPumpStationServiceImpl service = new WaterPumpStationServiceImpl();
- ReflectionTestUtils.setField(service, "baseMapper", mapper);
- assertEquals(expected, service.queryPage(new Page<>(1, 10), "S", "泵站", "0", "负责人", null, null));
- verify(mapper).selectPage(ArgumentMatchers.any(), ArgumentMatchers.any());
- }
- @Test
- void sourceQueryUsesDatabasePagination() {
- WaterSourceInfoMapper mapper = mock(WaterSourceInfoMapper.class);
- Page<WaterSourceInfo> expected = pageOf(new WaterSourceInfo());
- when(mapper.selectPage(ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(expected);
- WaterSourceInfoServiceImpl service = new WaterSourceInfoServiceImpl();
- ReflectionTestUtils.setField(service, "baseMapper", mapper);
- assertEquals(expected, service.queryPage(new Page<>(1, 10), "W", "水源", "0", "单位", null, null));
- verify(mapper).selectPage(ArgumentMatchers.any(), ArgumentMatchers.any());
- }
- @Test
- void waterUserQueryUsesDatabasePagination() {
- WaterUserInfoMapper mapper = mock(WaterUserInfoMapper.class);
- Page<WaterUserInfo> expected = pageOf(new WaterUserInfo());
- when(mapper.selectPage(ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(expected);
- WaterUserInfoServiceImpl service = new WaterUserInfoServiceImpl();
- ReflectionTestUtils.setField(service, "baseMapper", mapper);
- assertEquals(expected, service.queryPage(new Page<>(4, 10), "U", "居民", "0", "居民", null, null));
- verify(mapper).selectPage(ArgumentMatchers.any(), ArgumentMatchers.any());
- }
- @Test
- void facilityMapperQueriesUseKingbaseAppUserSchema() throws Exception {
- String[] mapperPaths = {
- "mapper/WaterSupply/WaterPipeInfo/WaterPipeInfoMapper.xml",
- "mapper/WaterSupply/WaterPlantInfo/WaterPlantInfoMapper.xml",
- "mapper/WaterSupply/WaterPumpStation/WaterPumpStationMapper.xml",
- "mapper/WaterSupply/WaterSourceInfo/WaterSourceInfoMapper.xml",
- "mapper/WaterSupply/WaterUserInfo/WaterUserInfoMapper.xml"
- };
- for (String path : mapperPaths) {
- try (InputStream input = getClass().getClassLoader().getResourceAsStream(path)) {
- String xml = new String(input.readAllBytes(), StandardCharsets.UTF_8);
- org.junit.jupiter.api.Assertions.assertFalse(
- xml.matches("(?s).*\\b(?:FROM|UPDATE|DELETE FROM)\\s+water_(?:pipe_info|plant_info|pump_station|source_info|user_info)\\b.*"),
- path + " must qualify facilities with app_user schema");
- }
- }
- }
- @Test
- void pipeExportIncludesLayingYear() {
- WaterPipeInfo pipe = new WaterPipeInfo();
- pipe.setLayingYear(1998);
- assertEquals(1998, WaterPipeExportDTO.from(pipe).getLayingYear());
- try {
- Field field = WaterPipeExportDTO.class.getDeclaredField("layingYear");
- assertEquals("铺设年份", field.getAnnotation(com.zksy.common.annotation.Excel.class).name());
- } catch (ReflectiveOperationException e) {
- throw new AssertionError("layingYear must be an exported Excel field", e);
- }
- }
- private static <T> Page<T> pageOf(T record) {
- Page<T> page = new Page<>(1, 1);
- page.setRecords(List.of(record));
- page.setTotal(1);
- return page;
- }
- }
|