Feat: Api 联通 + 地区整理
This commit is contained in:
parent
42e8accd97
commit
aad3d0b5b6
|
|
@ -37,6 +37,19 @@ public class LianTongAreaUtils {
|
|||
*/
|
||||
private static Map<String, LianTongArea> 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<>();
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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<List<AddressVo>> getSubAddressList(@RequestParam("code") String code, @RequestParam AddressVo.Level level) {
|
||||
public CommonResult<List<AddressVo>> getSubAddressList(@RequestParam(required = false) String code, @RequestParam AddressVo.Level level) {
|
||||
return success(haoKaAddressService.getSubAddressList(code, level));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<List<LianTongAreaVo>> lianTongAreaInfo(@RequestParam(required = false, defaultValue = "1") String code) {
|
||||
LianTongArea area = LianTongAreaUtils.getArea(code);
|
||||
return success(BeanUtils.toBean(area.getChildren(), LianTongAreaVo.class));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<AddressAreaDO> pageResult = addressAreaService.getAddressAreaPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbAddressArea, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressCityDO> pageResult = addressCityService.getAddressCityPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbAddressCity, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressProvinceDO> pageResult = addressProvinceService.getAddressProvincePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbAddressProvince, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressStreetDO> pageResult = addressStreetService.getAddressStreetPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbAddressStreet, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<AddressVillageDO> pageResult = addressVillageService.getAddressVillagePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbAddressVillage, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue