From aad3d0b5b68efedd31162067708fd0060ad5ce63 Mon Sep 17 00:00:00 2001 From: Owen <595466820@qq.com> Date: Fri, 27 Dec 2024 12:21:49 +0800 Subject: [PATCH] =?UTF-8?q?Feat:=20Api=20=E8=81=94=E9=80=9A=20+=20?= =?UTF-8?q?=E5=9C=B0=E5=8C=BA=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/liantong/area/LianTongAreaUtils.java | 13 ++ .../api/liantong/area/LianTongAreaVo.java | 80 ++++++++++ .../admin/address/AddressAreaController.java | 2 +- .../admin/api/HaokaApiController.java | 13 ++ .../address/AddressAreaServiceImplTest.java | 138 ----------------- .../address/AddressCityServiceImplTest.java | 134 ---------------- .../AddressProvinceServiceImplTest.java | 130 ---------------- .../address/AddressStreetServiceImplTest.java | 142 ----------------- .../AddressVillageServiceImplTest.java | 146 ------------------ 9 files changed, 107 insertions(+), 691 deletions(-) create mode 100644 yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaVo.java delete mode 100644 yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressAreaServiceImplTest.java delete mode 100644 yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressCityServiceImplTest.java delete mode 100644 yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressProvinceServiceImplTest.java delete mode 100644 yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressStreetServiceImplTest.java delete mode 100644 yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressVillageServiceImplTest.java diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaUtils.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaUtils.java index 655fc27d73..6d99f8fd95 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaUtils.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaUtils.java @@ -37,6 +37,19 @@ public class LianTongAreaUtils { */ private static Map areas; + public static LianTongArea getLianTongAreaByHaokaAddressCode(String code){ + if (code.length()==6){ + return areas.get(code); + } + if (code.length()==4){ + return areas.get(code+"00"); + } + if (code.length()==2){ + return areas.get(code+"0000"); + } + return areas.get(code); + } + private LianTongAreaUtils() { areas = new HashMap<>(); diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaVo.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaVo.java new file mode 100644 index 0000000000..f146910973 --- /dev/null +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/api/liantong/area/LianTongAreaVo.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.haoka.api.liantong.area; + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.List; + +/** + * 区域节点,包括国家、省份、城市、地区等信息 + * + * 数据可见 resources/area.csv 文件 + * + * @author 芋道源码 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LianTongAreaVo { + + /** + * 编号 - 全球,即根目录 + */ + public static final String ID_GLOBAL = "0"; + /** + * 编号 - 中国 + */ + public static final String ID_CHINA = "1"; + + /** + * 编号 + */ + private String id; + /** + * 名字 + */ + private String name; + /** + * 类型 + * + * 枚举 {@link AreaTypeEnum} + */ + private Integer type; + + /** + * 收货地址省份编码 + */ + private String provinceCode; + /** + * 收货地址省份名称 + */ + private String provinceName; + /** + * 收货地址地市编码 + */ + private String cityCode; + /** + * 收货地址地市名称 + */ + private String cityName; + /** + * 收货地址区县编码 + */ + private String districtCode; + /** + * 收货地址区县名称 + */ + private String districtName; + /** + * 对应号码归属省份编码 + */ + private String phoneProvinceCode; + /** + * 对应号码归属地市编码 + */ + private String phoneCityCode; +} diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/address/AddressAreaController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/address/AddressAreaController.java index 754424ee3f..8601cb123c 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/address/AddressAreaController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/address/AddressAreaController.java @@ -31,7 +31,7 @@ public class AddressAreaController { @Operation(summary = "获得区县") @Parameter(name = "code", description = "编号", required = true, example = "1024") @Parameter(name = "level", description = "编号", required = true, example = "1024") - public CommonResult> getSubAddressList(@RequestParam("code") String code, @RequestParam AddressVo.Level level) { + public CommonResult> getSubAddressList(@RequestParam(required = false) String code, @RequestParam AddressVo.Level level) { return success(haoKaAddressService.getSubAddressList(code, level)); } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/api/HaokaApiController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/api/HaokaApiController.java index b10aa98e06..87846f361d 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/api/HaokaApiController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/api/HaokaApiController.java @@ -1,7 +1,11 @@ package cn.iocoder.yudao.module.haoka.controller.admin.api; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.haoka.api.ApiLianTongService; +import cn.iocoder.yudao.module.haoka.api.liantong.area.LianTongArea; +import cn.iocoder.yudao.module.haoka.api.liantong.area.LianTongAreaUtils; +import cn.iocoder.yudao.module.haoka.api.liantong.area.LianTongAreaVo; import cn.iocoder.yudao.module.haoka.api.liantong.model.request.*; import cn.iocoder.yudao.module.haoka.api.liantong.model.response.*; import io.swagger.v3.oas.annotations.Operation; @@ -10,6 +14,8 @@ import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "API----上游接口") @@ -83,4 +89,11 @@ public class HaokaApiController { KingNumSelectResponse response = haokaAllSuperiorApiService.lianTongTokenSelectNumber(request); return success(response); } + + @PostMapping("/lian-tong/select-area") + @Operation(summary = "联通-地址-归属地查询") + public CommonResult> lianTongAreaInfo(@RequestParam(required = false, defaultValue = "1") String code) { + LianTongArea area = LianTongAreaUtils.getArea(code); + return success(BeanUtils.toBean(area.getChildren(), LianTongAreaVo.class)); + } } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressAreaServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressAreaServiceImplTest.java deleted file mode 100644 index c9f63a9042..0000000000 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressAreaServiceImplTest.java +++ /dev/null @@ -1,138 +0,0 @@ -package cn.iocoder.yudao.module.haoka.service.address; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; - -import jakarta.annotation.Resource; - -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; - -import cn.iocoder.yudao.module.haoka.controller.admin.address.vo.*; -import cn.iocoder.yudao.module.haoka.dal.dataobject.address.AddressAreaDO; -import cn.iocoder.yudao.module.haoka.dal.mysql.address.AddressAreaMapper; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import jakarta.annotation.Resource; -import org.springframework.context.annotation.Import; -import java.util.*; -import java.time.LocalDateTime; - -import static cn.hutool.core.util.RandomUtil.*; -import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -/** - * {@link AddressAreaServiceImpl} 的单元测试类 - * - * @author 芋道源码 - */ -@Import(AddressAreaServiceImpl.class) -public class AddressAreaServiceImplTest extends BaseDbUnitTest { - - @Resource - private AddressAreaServiceImpl addressAreaService; - - @Resource - private AddressAreaMapper addressAreaMapper; - - @Test - public void testCreateAddressArea_success() { - // 准备参数 - AddressAreaSaveReqVO createReqVO = randomPojo(AddressAreaSaveReqVO.class).setId(null); - - // 调用 - String addressAreaId = addressAreaService.createAddressArea(createReqVO); - // 断言 - assertNotNull(addressAreaId); - // 校验记录的属性是否正确 - AddressAreaDO addressArea = addressAreaMapper.selectById(addressAreaId); - assertPojoEquals(createReqVO, addressArea, "id"); - } - - @Test - public void testUpdateAddressArea_success() { - // mock 数据 - AddressAreaDO dbAddressArea = randomPojo(AddressAreaDO.class); - addressAreaMapper.insert(dbAddressArea);// @Sql: 先插入出一条存在的数据 - // 准备参数 - AddressAreaSaveReqVO updateReqVO = randomPojo(AddressAreaSaveReqVO.class, o -> { - o.setId(dbAddressArea.getId()); // 设置更新的 ID - }); - - // 调用 - addressAreaService.updateAddressArea(updateReqVO); - // 校验是否更新正确 - AddressAreaDO addressArea = addressAreaMapper.selectById(updateReqVO.getId()); // 获取最新的 - assertPojoEquals(updateReqVO, addressArea); - } - - @Test - public void testUpdateAddressArea_notExists() { - // 准备参数 - AddressAreaSaveReqVO updateReqVO = randomPojo(AddressAreaSaveReqVO.class); - - // 调用, 并断言异常 - assertServiceException(() -> addressAreaService.updateAddressArea(updateReqVO), ADDRESS_AREA_NOT_EXISTS); - } - - @Test - public void testDeleteAddressArea_success() { - // mock 数据 - AddressAreaDO dbAddressArea = randomPojo(AddressAreaDO.class); - addressAreaMapper.insert(dbAddressArea);// @Sql: 先插入出一条存在的数据 - // 准备参数 - String id = dbAddressArea.getId(); - - // 调用 - addressAreaService.deleteAddressArea(id); - // 校验数据不存在了 - assertNull(addressAreaMapper.selectById(id)); - } - - @Test - public void testDeleteAddressArea_notExists() { - // 准备参数 - String id = randomStringId(); - - // 调用, 并断言异常 - assertServiceException(() -> addressAreaService.deleteAddressArea(id), ADDRESS_AREA_NOT_EXISTS); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetAddressAreaPage() { - // mock 数据 - AddressAreaDO dbAddressArea = randomPojo(AddressAreaDO.class, o -> { // 等会查询到 - o.setName(null); - o.setCityCode(null); - o.setProvinceCode(null); - }); - addressAreaMapper.insert(dbAddressArea); - // 测试 name 不匹配 - addressAreaMapper.insert(cloneIgnoreId(dbAddressArea, o -> o.setName(null))); - // 测试 cityCode 不匹配 - addressAreaMapper.insert(cloneIgnoreId(dbAddressArea, o -> o.setCityCode(null))); - // 测试 provinceCode 不匹配 - addressAreaMapper.insert(cloneIgnoreId(dbAddressArea, o -> o.setProvinceCode(null))); - // 准备参数 - AddressAreaPageReqVO reqVO = new AddressAreaPageReqVO(); - reqVO.setName(null); - reqVO.setCityCode(null); - reqVO.setProvinceCode(null); - - // 调用 - PageResult pageResult = addressAreaService.getAddressAreaPage(reqVO); - // 断言 - assertEquals(1, pageResult.getTotal()); - assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbAddressArea, pageResult.getList().get(0)); - } - -} \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressCityServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressCityServiceImplTest.java deleted file mode 100644 index b21adbd874..0000000000 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressCityServiceImplTest.java +++ /dev/null @@ -1,134 +0,0 @@ -package cn.iocoder.yudao.module.haoka.service.address; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; - -import jakarta.annotation.Resource; - -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; - -import cn.iocoder.yudao.module.haoka.controller.admin.address.vo.*; -import cn.iocoder.yudao.module.haoka.dal.dataobject.address.AddressCityDO; -import cn.iocoder.yudao.module.haoka.dal.mysql.address.AddressCityMapper; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import jakarta.annotation.Resource; -import org.springframework.context.annotation.Import; -import java.util.*; -import java.time.LocalDateTime; - -import static cn.hutool.core.util.RandomUtil.*; -import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -/** - * {@link AddressCityServiceImpl} 的单元测试类 - * - * @author 芋道源码 - */ -@Import(AddressCityServiceImpl.class) -public class AddressCityServiceImplTest extends BaseDbUnitTest { - - @Resource - private AddressCityServiceImpl addressCityService; - - @Resource - private AddressCityMapper addressCityMapper; - - @Test - public void testCreateAddressCity_success() { - // 准备参数 - AddressCitySaveReqVO createReqVO = randomPojo(AddressCitySaveReqVO.class).setId(null); - - // 调用 - String addressCityId = addressCityService.createAddressCity(createReqVO); - // 断言 - assertNotNull(addressCityId); - // 校验记录的属性是否正确 - AddressCityDO addressCity = addressCityMapper.selectById(addressCityId); - assertPojoEquals(createReqVO, addressCity, "id"); - } - - @Test - public void testUpdateAddressCity_success() { - // mock 数据 - AddressCityDO dbAddressCity = randomPojo(AddressCityDO.class); - addressCityMapper.insert(dbAddressCity);// @Sql: 先插入出一条存在的数据 - // 准备参数 - AddressCitySaveReqVO updateReqVO = randomPojo(AddressCitySaveReqVO.class, o -> { - o.setId(dbAddressCity.getId()); // 设置更新的 ID - }); - - // 调用 - addressCityService.updateAddressCity(updateReqVO); - // 校验是否更新正确 - AddressCityDO addressCity = addressCityMapper.selectById(updateReqVO.getId()); // 获取最新的 - assertPojoEquals(updateReqVO, addressCity); - } - - @Test - public void testUpdateAddressCity_notExists() { - // 准备参数 - AddressCitySaveReqVO updateReqVO = randomPojo(AddressCitySaveReqVO.class); - - // 调用, 并断言异常 - assertServiceException(() -> addressCityService.updateAddressCity(updateReqVO), ADDRESS_CITY_NOT_EXISTS); - } - - @Test - public void testDeleteAddressCity_success() { - // mock 数据 - AddressCityDO dbAddressCity = randomPojo(AddressCityDO.class); - addressCityMapper.insert(dbAddressCity);// @Sql: 先插入出一条存在的数据 - // 准备参数 - String id = dbAddressCity.getId(); - - // 调用 - addressCityService.deleteAddressCity(id); - // 校验数据不存在了 - assertNull(addressCityMapper.selectById(id)); - } - - @Test - public void testDeleteAddressCity_notExists() { - // 准备参数 - String id = randomStringId(); - - // 调用, 并断言异常 - assertServiceException(() -> addressCityService.deleteAddressCity(id), ADDRESS_CITY_NOT_EXISTS); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetAddressCityPage() { - // mock 数据 - AddressCityDO dbAddressCity = randomPojo(AddressCityDO.class, o -> { // 等会查询到 - o.setName(null); - o.setProvinceCode(null); - }); - addressCityMapper.insert(dbAddressCity); - // 测试 name 不匹配 - addressCityMapper.insert(cloneIgnoreId(dbAddressCity, o -> o.setName(null))); - // 测试 provinceCode 不匹配 - addressCityMapper.insert(cloneIgnoreId(dbAddressCity, o -> o.setProvinceCode(null))); - // 准备参数 - AddressCityPageReqVO reqVO = new AddressCityPageReqVO(); - reqVO.setName(null); - reqVO.setProvinceCode(null); - - // 调用 - PageResult pageResult = addressCityService.getAddressCityPage(reqVO); - // 断言 - assertEquals(1, pageResult.getTotal()); - assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbAddressCity, pageResult.getList().get(0)); - } - -} \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressProvinceServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressProvinceServiceImplTest.java deleted file mode 100644 index 583d968dc6..0000000000 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressProvinceServiceImplTest.java +++ /dev/null @@ -1,130 +0,0 @@ -package cn.iocoder.yudao.module.haoka.service.address; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; - -import jakarta.annotation.Resource; - -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; - -import cn.iocoder.yudao.module.haoka.controller.admin.address.vo.*; -import cn.iocoder.yudao.module.haoka.dal.dataobject.address.AddressProvinceDO; -import cn.iocoder.yudao.module.haoka.dal.mysql.address.AddressProvinceMapper; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import jakarta.annotation.Resource; -import org.springframework.context.annotation.Import; -import java.util.*; -import java.time.LocalDateTime; - -import static cn.hutool.core.util.RandomUtil.*; -import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -/** - * {@link AddressProvinceServiceImpl} 的单元测试类 - * - * @author 芋道源码 - */ -@Import(AddressProvinceServiceImpl.class) -public class AddressProvinceServiceImplTest extends BaseDbUnitTest { - - @Resource - private AddressProvinceServiceImpl addressProvinceService; - - @Resource - private AddressProvinceMapper addressProvinceMapper; - - @Test - public void testCreateAddressProvince_success() { - // 准备参数 - AddressProvinceSaveReqVO createReqVO = randomPojo(AddressProvinceSaveReqVO.class).setId(null); - - // 调用 - String addressProvinceId = addressProvinceService.createAddressProvince(createReqVO); - // 断言 - assertNotNull(addressProvinceId); - // 校验记录的属性是否正确 - AddressProvinceDO addressProvince = addressProvinceMapper.selectById(addressProvinceId); - assertPojoEquals(createReqVO, addressProvince, "id"); - } - - @Test - public void testUpdateAddressProvince_success() { - // mock 数据 - AddressProvinceDO dbAddressProvince = randomPojo(AddressProvinceDO.class); - addressProvinceMapper.insert(dbAddressProvince);// @Sql: 先插入出一条存在的数据 - // 准备参数 - AddressProvinceSaveReqVO updateReqVO = randomPojo(AddressProvinceSaveReqVO.class, o -> { - o.setId(dbAddressProvince.getId()); // 设置更新的 ID - }); - - // 调用 - addressProvinceService.updateAddressProvince(updateReqVO); - // 校验是否更新正确 - AddressProvinceDO addressProvince = addressProvinceMapper.selectById(updateReqVO.getId()); // 获取最新的 - assertPojoEquals(updateReqVO, addressProvince); - } - - @Test - public void testUpdateAddressProvince_notExists() { - // 准备参数 - AddressProvinceSaveReqVO updateReqVO = randomPojo(AddressProvinceSaveReqVO.class); - - // 调用, 并断言异常 - assertServiceException(() -> addressProvinceService.updateAddressProvince(updateReqVO), ADDRESS_PROVINCE_NOT_EXISTS); - } - - @Test - public void testDeleteAddressProvince_success() { - // mock 数据 - AddressProvinceDO dbAddressProvince = randomPojo(AddressProvinceDO.class); - addressProvinceMapper.insert(dbAddressProvince);// @Sql: 先插入出一条存在的数据 - // 准备参数 - String id = dbAddressProvince.getId(); - - // 调用 - addressProvinceService.deleteAddressProvince(id); - // 校验数据不存在了 - assertNull(addressProvinceMapper.selectById(id)); - } - - @Test - public void testDeleteAddressProvince_notExists() { - // 准备参数 - String id = randomStringId(); - - // 调用, 并断言异常 - assertServiceException(() -> addressProvinceService.deleteAddressProvince(id), ADDRESS_PROVINCE_NOT_EXISTS); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetAddressProvincePage() { - // mock 数据 - AddressProvinceDO dbAddressProvince = randomPojo(AddressProvinceDO.class, o -> { // 等会查询到 - o.setName(null); - }); - addressProvinceMapper.insert(dbAddressProvince); - // 测试 name 不匹配 - addressProvinceMapper.insert(cloneIgnoreId(dbAddressProvince, o -> o.setName(null))); - // 准备参数 - AddressProvincePageReqVO reqVO = new AddressProvincePageReqVO(); - reqVO.setName(null); - - // 调用 - PageResult pageResult = addressProvinceService.getAddressProvincePage(reqVO); - // 断言 - assertEquals(1, pageResult.getTotal()); - assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbAddressProvince, pageResult.getList().get(0)); - } - -} \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressStreetServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressStreetServiceImplTest.java deleted file mode 100644 index 0ac28f7de5..0000000000 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressStreetServiceImplTest.java +++ /dev/null @@ -1,142 +0,0 @@ -package cn.iocoder.yudao.module.haoka.service.address; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; - -import jakarta.annotation.Resource; - -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; - -import cn.iocoder.yudao.module.haoka.controller.admin.address.vo.*; -import cn.iocoder.yudao.module.haoka.dal.dataobject.address.AddressStreetDO; -import cn.iocoder.yudao.module.haoka.dal.mysql.address.AddressStreetMapper; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import jakarta.annotation.Resource; -import org.springframework.context.annotation.Import; -import java.util.*; -import java.time.LocalDateTime; - -import static cn.hutool.core.util.RandomUtil.*; -import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -/** - * {@link AddressStreetServiceImpl} 的单元测试类 - * - * @author 芋道源码 - */ -@Import(AddressStreetServiceImpl.class) -public class AddressStreetServiceImplTest extends BaseDbUnitTest { - - @Resource - private AddressStreetServiceImpl addressStreetService; - - @Resource - private AddressStreetMapper addressStreetMapper; - - @Test - public void testCreateAddressStreet_success() { - // 准备参数 - AddressStreetSaveReqVO createReqVO = randomPojo(AddressStreetSaveReqVO.class).setId(null); - - // 调用 - String addressStreetId = addressStreetService.createAddressStreet(createReqVO); - // 断言 - assertNotNull(addressStreetId); - // 校验记录的属性是否正确 - AddressStreetDO addressStreet = addressStreetMapper.selectById(addressStreetId); - assertPojoEquals(createReqVO, addressStreet, "id"); - } - - @Test - public void testUpdateAddressStreet_success() { - // mock 数据 - AddressStreetDO dbAddressStreet = randomPojo(AddressStreetDO.class); - addressStreetMapper.insert(dbAddressStreet);// @Sql: 先插入出一条存在的数据 - // 准备参数 - AddressStreetSaveReqVO updateReqVO = randomPojo(AddressStreetSaveReqVO.class, o -> { - o.setId(dbAddressStreet.getId()); // 设置更新的 ID - }); - - // 调用 - addressStreetService.updateAddressStreet(updateReqVO); - // 校验是否更新正确 - AddressStreetDO addressStreet = addressStreetMapper.selectById(updateReqVO.getId()); // 获取最新的 - assertPojoEquals(updateReqVO, addressStreet); - } - - @Test - public void testUpdateAddressStreet_notExists() { - // 准备参数 - AddressStreetSaveReqVO updateReqVO = randomPojo(AddressStreetSaveReqVO.class); - - // 调用, 并断言异常 - assertServiceException(() -> addressStreetService.updateAddressStreet(updateReqVO), ADDRESS_STREET_NOT_EXISTS); - } - - @Test - public void testDeleteAddressStreet_success() { - // mock 数据 - AddressStreetDO dbAddressStreet = randomPojo(AddressStreetDO.class); - addressStreetMapper.insert(dbAddressStreet);// @Sql: 先插入出一条存在的数据 - // 准备参数 - String id = dbAddressStreet.getId(); - - // 调用 - addressStreetService.deleteAddressStreet(id); - // 校验数据不存在了 - assertNull(addressStreetMapper.selectById(id)); - } - - @Test - public void testDeleteAddressStreet_notExists() { - // 准备参数 - String id = randomStringId(); - - // 调用, 并断言异常 - assertServiceException(() -> addressStreetService.deleteAddressStreet(id), ADDRESS_STREET_NOT_EXISTS); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetAddressStreetPage() { - // mock 数据 - AddressStreetDO dbAddressStreet = randomPojo(AddressStreetDO.class, o -> { // 等会查询到 - o.setName(null); - o.setAreaCode(null); - o.setProvinceCode(null); - o.setCityCode(null); - }); - addressStreetMapper.insert(dbAddressStreet); - // 测试 name 不匹配 - addressStreetMapper.insert(cloneIgnoreId(dbAddressStreet, o -> o.setName(null))); - // 测试 areaCode 不匹配 - addressStreetMapper.insert(cloneIgnoreId(dbAddressStreet, o -> o.setAreaCode(null))); - // 测试 provinceCode 不匹配 - addressStreetMapper.insert(cloneIgnoreId(dbAddressStreet, o -> o.setProvinceCode(null))); - // 测试 cityCode 不匹配 - addressStreetMapper.insert(cloneIgnoreId(dbAddressStreet, o -> o.setCityCode(null))); - // 准备参数 - AddressStreetPageReqVO reqVO = new AddressStreetPageReqVO(); - reqVO.setName(null); - reqVO.setAreaCode(null); - reqVO.setProvinceCode(null); - reqVO.setCityCode(null); - - // 调用 - PageResult pageResult = addressStreetService.getAddressStreetPage(reqVO); - // 断言 - assertEquals(1, pageResult.getTotal()); - assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbAddressStreet, pageResult.getList().get(0)); - } - -} \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressVillageServiceImplTest.java b/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressVillageServiceImplTest.java deleted file mode 100644 index 8b999ee76c..0000000000 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/test/java/cn/iocoder/yudao/module/haoka/service/address/AddressVillageServiceImplTest.java +++ /dev/null @@ -1,146 +0,0 @@ -package cn.iocoder.yudao.module.haoka.service.address; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; - -import jakarta.annotation.Resource; - -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; - -import cn.iocoder.yudao.module.haoka.controller.admin.address.vo.*; -import cn.iocoder.yudao.module.haoka.dal.dataobject.address.AddressVillageDO; -import cn.iocoder.yudao.module.haoka.dal.mysql.address.AddressVillageMapper; -import cn.iocoder.yudao.framework.common.pojo.PageResult; - -import jakarta.annotation.Resource; -import org.springframework.context.annotation.Import; -import java.util.*; -import java.time.LocalDateTime; - -import static cn.hutool.core.util.RandomUtil.*; -import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - -/** - * {@link AddressVillageServiceImpl} 的单元测试类 - * - * @author 芋道源码 - */ -@Import(AddressVillageServiceImpl.class) -public class AddressVillageServiceImplTest extends BaseDbUnitTest { - - @Resource - private AddressVillageServiceImpl addressVillageService; - - @Resource - private AddressVillageMapper addressVillageMapper; - - @Test - public void testCreateAddressVillage_success() { - // 准备参数 - AddressVillageSaveReqVO createReqVO = randomPojo(AddressVillageSaveReqVO.class).setId(null); - - // 调用 - String addressVillageId = addressVillageService.createAddressVillage(createReqVO); - // 断言 - assertNotNull(addressVillageId); - // 校验记录的属性是否正确 - AddressVillageDO addressVillage = addressVillageMapper.selectById(addressVillageId); - assertPojoEquals(createReqVO, addressVillage, "id"); - } - - @Test - public void testUpdateAddressVillage_success() { - // mock 数据 - AddressVillageDO dbAddressVillage = randomPojo(AddressVillageDO.class); - addressVillageMapper.insert(dbAddressVillage);// @Sql: 先插入出一条存在的数据 - // 准备参数 - AddressVillageSaveReqVO updateReqVO = randomPojo(AddressVillageSaveReqVO.class, o -> { - o.setId(dbAddressVillage.getId()); // 设置更新的 ID - }); - - // 调用 - addressVillageService.updateAddressVillage(updateReqVO); - // 校验是否更新正确 - AddressVillageDO addressVillage = addressVillageMapper.selectById(updateReqVO.getId()); // 获取最新的 - assertPojoEquals(updateReqVO, addressVillage); - } - - @Test - public void testUpdateAddressVillage_notExists() { - // 准备参数 - AddressVillageSaveReqVO updateReqVO = randomPojo(AddressVillageSaveReqVO.class); - - // 调用, 并断言异常 - assertServiceException(() -> addressVillageService.updateAddressVillage(updateReqVO), ADDRESS_VILLAGE_NOT_EXISTS); - } - - @Test - public void testDeleteAddressVillage_success() { - // mock 数据 - AddressVillageDO dbAddressVillage = randomPojo(AddressVillageDO.class); - addressVillageMapper.insert(dbAddressVillage);// @Sql: 先插入出一条存在的数据 - // 准备参数 - String id = dbAddressVillage.getId(); - - // 调用 - addressVillageService.deleteAddressVillage(id); - // 校验数据不存在了 - assertNull(addressVillageMapper.selectById(id)); - } - - @Test - public void testDeleteAddressVillage_notExists() { - // 准备参数 - String id = randomStringId(); - - // 调用, 并断言异常 - assertServiceException(() -> addressVillageService.deleteAddressVillage(id), ADDRESS_VILLAGE_NOT_EXISTS); - } - - @Test - @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 - public void testGetAddressVillagePage() { - // mock 数据 - AddressVillageDO dbAddressVillage = randomPojo(AddressVillageDO.class, o -> { // 等会查询到 - o.setName(null); - o.setStreetCode(null); - o.setProvinceCode(null); - o.setCityCode(null); - o.setAreaCode(null); - }); - addressVillageMapper.insert(dbAddressVillage); - // 测试 name 不匹配 - addressVillageMapper.insert(cloneIgnoreId(dbAddressVillage, o -> o.setName(null))); - // 测试 streetCode 不匹配 - addressVillageMapper.insert(cloneIgnoreId(dbAddressVillage, o -> o.setStreetCode(null))); - // 测试 provinceCode 不匹配 - addressVillageMapper.insert(cloneIgnoreId(dbAddressVillage, o -> o.setProvinceCode(null))); - // 测试 cityCode 不匹配 - addressVillageMapper.insert(cloneIgnoreId(dbAddressVillage, o -> o.setCityCode(null))); - // 测试 areaCode 不匹配 - addressVillageMapper.insert(cloneIgnoreId(dbAddressVillage, o -> o.setAreaCode(null))); - // 准备参数 - AddressVillagePageReqVO reqVO = new AddressVillagePageReqVO(); - reqVO.setName(null); - reqVO.setStreetCode(null); - reqVO.setProvinceCode(null); - reqVO.setCityCode(null); - reqVO.setAreaCode(null); - - // 调用 - PageResult pageResult = addressVillageService.getAddressVillagePage(reqVO); - // 断言 - assertEquals(1, pageResult.getTotal()); - assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbAddressVillage, pageResult.getList().get(0)); - } - -} \ No newline at end of file