多模块重构 11:修改代码生成器的实现
parent
b0c25ea9f4
commit
352a67c530
@ -1,9 +0,0 @@
|
|||||||
### 请求 /tool/test-demo/get 接口 => 成功
|
|
||||||
GET {{baseUrl}}/tool/test-demo/get?id=1
|
|
||||||
Authorization: Bearer {{token}}
|
|
||||||
tenant-id: {{adminTenentId}}
|
|
||||||
|
|
||||||
### 请求 /tool/test-demo/list 接口 => 成功
|
|
||||||
GET {{baseUrl}}/tool/test-demo/list?ids=1
|
|
||||||
Authorization: Bearer {{token}}
|
|
||||||
tenant-id: {{adminTenentId}}
|
|
||||||
@ -0,0 +1 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.admin.test;
|
||||||
@ -1,42 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 测试示例 Excel VO
|
|
||||||
*
|
|
||||||
* @author 芋艿
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class TestDemoExcelVO {
|
|
||||||
|
|
||||||
@ExcelProperty("编号")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@ExcelProperty("名字")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@ExcelProperty(value = "状态", converter = DictConvert.class)
|
|
||||||
@DictFormat("")
|
|
||||||
private Integer status;
|
|
||||||
|
|
||||||
@ExcelProperty(value = "类型", converter = DictConvert.class)
|
|
||||||
@DictFormat("sys_common_status")
|
|
||||||
private Integer type;
|
|
||||||
|
|
||||||
@ExcelProperty(value = "分类", converter = DictConvert.class)
|
|
||||||
@DictFormat("inf_redis_timeout_type")
|
|
||||||
private Integer category;
|
|
||||||
|
|
||||||
@ExcelProperty("备注")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
@ExcelProperty("创建时间")
|
|
||||||
private Date createTime;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,101 +1,95 @@
|
|||||||
package cn.iocoder.yudao.module.tool.controller.admin.test;
|
package cn.iocoder.yudao.module.tool.controller.app.test;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
|
||||||
import cn.iocoder.yudao.module.tool.controller.admin.test.vo.*;
|
|
||||||
import cn.iocoder.yudao.module.tool.convert.test.TestDemoConvert;
|
|
||||||
import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
|
|
||||||
import cn.iocoder.yudao.module.tool.service.test.TestDemoService;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import javax.validation.Valid;
|
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import javax.servlet.http.*;
|
||||||
|
import java.util.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
|
||||||
|
|
||||||
@Api(tags = "管理后台 - 测试示例")
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.tool.controller.app.test.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
|
||||||
|
import cn.iocoder.yudao.module.tool.convert.test.TestDemoConvert;
|
||||||
|
import cn.iocoder.yudao.module.tool.service.test.TestDemoService;
|
||||||
|
|
||||||
|
@Api(tags = "用户 APP - 字典类型")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/tool/test-demo")
|
@RequestMapping("/tool/test-demo")
|
||||||
@Validated
|
@Validated
|
||||||
public class TestDemoController {
|
public class AppTestDemoController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TestDemoService testDemoService;
|
private TestDemoService testDemoService;
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@ApiOperation("创建测试示例")
|
@ApiOperation("创建字典类型")
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:create')")
|
public CommonResult<Long> createTestDemo(@Valid @RequestBody AppTestDemoCreateReqVO createReqVO) {
|
||||||
public CommonResult<Long> createTestDemo(@Valid @RequestBody TestDemoCreateReqVO createReqVO) {
|
|
||||||
return success(testDemoService.createTestDemo(createReqVO));
|
return success(testDemoService.createTestDemo(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@ApiOperation("更新测试示例")
|
@ApiOperation("更新字典类型")
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:update')")
|
public CommonResult<Boolean> updateTestDemo(@Valid @RequestBody AppTestDemoUpdateReqVO updateReqVO) {
|
||||||
public CommonResult<Boolean> updateTestDemo(@Valid @RequestBody TestDemoUpdateReqVO updateReqVO) {
|
|
||||||
testDemoService.updateTestDemo(updateReqVO);
|
testDemoService.updateTestDemo(updateReqVO);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@ApiOperation("删除测试示例")
|
@ApiOperation("删除字典类型")
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
|
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:delete')")
|
|
||||||
public CommonResult<Boolean> deleteTestDemo(@RequestParam("id") Long id) {
|
public CommonResult<Boolean> deleteTestDemo(@RequestParam("id") Long id) {
|
||||||
testDemoService.deleteTestDemo(id);
|
testDemoService.deleteTestDemo(id);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@ApiOperation("获得测试示例")
|
@ApiOperation("获得字典类型")
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
|
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
|
@PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
|
||||||
// @Lock4j // 分布式锁
|
public CommonResult<AppTestDemoRespVO> getTestDemo(@RequestParam("id") Long id) {
|
||||||
public CommonResult<TestDemoRespVO> getTestDemo(@RequestParam("id") Long id) {
|
|
||||||
TestDemoDO testDemo = testDemoService.getTestDemo(id);
|
TestDemoDO testDemo = testDemoService.getTestDemo(id);
|
||||||
return success(TestDemoConvert.INSTANCE.convert(testDemo));
|
return success(TestDemoConvert.INSTANCE.convert(testDemo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@ApiOperation("获得测试示例列表")
|
@ApiOperation("获得字典类型列表")
|
||||||
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, dataTypeClass = List.class)
|
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
|
public CommonResult<List<AppTestDemoRespVO>> getTestDemoList(@RequestParam("ids") Collection<Long> ids) {
|
||||||
// @RateLimiter(name = "backendA")
|
|
||||||
public CommonResult<List<TestDemoRespVO>> getTestDemoList(@RequestParam("ids") Collection<Long> ids) {
|
|
||||||
List<TestDemoDO> list = testDemoService.getTestDemoList(ids);
|
List<TestDemoDO> list = testDemoService.getTestDemoList(ids);
|
||||||
return success(TestDemoConvert.INSTANCE.convertList(list));
|
return success(TestDemoConvert.INSTANCE.convertList(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@ApiOperation("获得测试示例分页")
|
@ApiOperation("获得字典类型分页")
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
|
public CommonResult<PageResult<AppTestDemoRespVO>> getTestDemoPage(@Valid AppTestDemoPageReqVO pageVO) {
|
||||||
public CommonResult<PageResult<TestDemoRespVO>> getTestDemoPage(@Valid TestDemoPageReqVO pageVO) {
|
|
||||||
PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(pageVO);
|
PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(pageVO);
|
||||||
return success(TestDemoConvert.INSTANCE.convertPage(pageResult));
|
return success(TestDemoConvert.INSTANCE.convertPage(pageResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@ApiOperation("导出测试示例 Excel")
|
@ApiOperation("导出字典类型 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('tool:test-demo:export')")
|
|
||||||
@OperateLog(type = EXPORT)
|
@OperateLog(type = EXPORT)
|
||||||
public void exportTestDemoExcel(@Valid TestDemoExportReqVO exportReqVO,
|
public void exportTestDemoExcel(@Valid AppTestDemoExportReqVO exportReqVO,
|
||||||
HttpServletResponse response) throws IOException {
|
HttpServletResponse response) throws IOException {
|
||||||
List<TestDemoDO> list = testDemoService.getTestDemoList(exportReqVO);
|
List<TestDemoDO> list = testDemoService.getTestDemoList(exportReqVO);
|
||||||
// 导出 Excel
|
// 导出 Excel
|
||||||
List<TestDemoExcelVO> datas = TestDemoConvert.INSTANCE.convertList02(list);
|
List<AppTestDemoExcelVO> datas = TestDemoConvert.INSTANCE.convertList02(list);
|
||||||
ExcelUtils.write(response, "测试示例.xls", "数据", TestDemoExcelVO.class, datas);
|
ExcelUtils.write(response, "字典类型.xls", "数据", AppTestDemoExcelVO.class, datas);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.app.test.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@ApiModel("用户 APP - 字典类型创建 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class AppTestDemoCreateReqVO extends AppTestDemoBaseVO {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.app.test.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典类型 Excel VO
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AppTestDemoExcelVO {
|
||||||
|
|
||||||
|
@ExcelProperty("编号")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ExcelProperty("名字")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ExcelProperty("状态")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@ExcelProperty("类型")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
@ExcelProperty("分类")
|
||||||
|
private Integer category;
|
||||||
|
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.app.test.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@ApiModel(value = "用户 APP - 字典类型 Excel 导出 Request VO", description = "参数和 TestDemoPageReqVO 是一致的")
|
||||||
|
@Data
|
||||||
|
public class AppTestDemoExportReqVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "名字")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "状态")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "分类")
|
||||||
|
private Integer category;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "开始创建时间")
|
||||||
|
private Date beginCreateTime;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "结束创建时间")
|
||||||
|
private Date endCreateTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.app.test.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@ApiModel("用户 APP - 字典类型分页 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class AppTestDemoPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "名字")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "状态")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "分类")
|
||||||
|
private Integer category;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "开始创建时间")
|
||||||
|
private Date beginCreateTime;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "结束创建时间")
|
||||||
|
private Date endCreateTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.app.test.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
|
@ApiModel("用户 APP - 字典类型 Response VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class AppTestDemoRespVO extends AppTestDemoBaseVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "编号", required = true)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间", required = true)
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.controller.app.test.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@ApiModel("用户 APP - 字典类型更新 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class AppTestDemoUpdateReqVO extends AppTestDemoBaseVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "编号", required = true)
|
||||||
|
@NotNull(message = "编号不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.service;
|
||||||
@ -0,0 +1,187 @@
|
|||||||
|
package cn.iocoder.yudao.module.tool.service.test;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest;
|
||||||
|
import cn.iocoder.yudao.module.tool.controller.app.test.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
|
||||||
|
import cn.iocoder.yudao.module.tool.dal.mysql.test.TestDemoMapper;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import static cn.hutool.core.util.RandomUtil.*;
|
||||||
|
import static cn.iocoder.yudao.module.tool.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.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 TestDemoServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@Import(TestDemoServiceImpl.class)
|
||||||
|
public class TestDemoServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TestDemoServiceImpl testDemoService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private TestDemoMapper testDemoMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateTestDemo_success() {
|
||||||
|
// 准备参数
|
||||||
|
AppTestDemoCreateReqVO reqVO = randomPojo(AppTestDemoCreateReqVO.class);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long testDemoId = testDemoService.createTestDemo(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(testDemoId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
TestDemoDO testDemo = testDemoMapper.selectById(testDemoId);
|
||||||
|
assertPojoEquals(reqVO, testDemo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateTestDemo_success() {
|
||||||
|
// mock 数据
|
||||||
|
TestDemoDO dbTestDemo = randomPojo(TestDemoDO.class);
|
||||||
|
testDemoMapper.insert(dbTestDemo);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
AppTestDemoUpdateReqVO reqVO = randomPojo(AppTestDemoUpdateReqVO.class, o -> {
|
||||||
|
o.setId(dbTestDemo.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
testDemoService.updateTestDemo(reqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
TestDemoDO testDemo = testDemoMapper.selectById(reqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(reqVO, testDemo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateTestDemo_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
AppTestDemoUpdateReqVO reqVO = randomPojo(AppTestDemoUpdateReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> testDemoService.updateTestDemo(reqVO), TEST_DEMO_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteTestDemo_success() {
|
||||||
|
// mock 数据
|
||||||
|
TestDemoDO dbTestDemo = randomPojo(TestDemoDO.class);
|
||||||
|
testDemoMapper.insert(dbTestDemo);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbTestDemo.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
testDemoService.deleteTestDemo(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(testDemoMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteTestDemo_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> testDemoService.deleteTestDemo(id), TEST_DEMO_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test // TODO 请修改 null 为需要的值
|
||||||
|
public void testGetTestDemoPage() {
|
||||||
|
// mock 数据
|
||||||
|
TestDemoDO dbTestDemo = randomPojo(TestDemoDO.class, o -> { // 等会查询到
|
||||||
|
o.setName(null);
|
||||||
|
o.setStatus(null);
|
||||||
|
o.setType(null);
|
||||||
|
o.setCategory(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
testDemoMapper.insert(dbTestDemo);
|
||||||
|
// 测试 name 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setName(null)));
|
||||||
|
// 测试 status 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setStatus(null)));
|
||||||
|
// 测试 type 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setType(null)));
|
||||||
|
// 测试 category 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCategory(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setRemark(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
AppTestDemoPageReqVO reqVO = new AppTestDemoPageReqVO();
|
||||||
|
reqVO.setName(null);
|
||||||
|
reqVO.setStatus(null);
|
||||||
|
reqVO.setType(null);
|
||||||
|
reqVO.setCategory(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setBeginCreateTime(null);
|
||||||
|
reqVO.setEndCreateTime(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbTestDemo, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test // TODO 请修改 null 为需要的值
|
||||||
|
public void testGetTestDemoList() {
|
||||||
|
// mock 数据
|
||||||
|
TestDemoDO dbTestDemo = randomPojo(TestDemoDO.class, o -> { // 等会查询到
|
||||||
|
o.setName(null);
|
||||||
|
o.setStatus(null);
|
||||||
|
o.setType(null);
|
||||||
|
o.setCategory(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
testDemoMapper.insert(dbTestDemo);
|
||||||
|
// 测试 name 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setName(null)));
|
||||||
|
// 测试 status 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setStatus(null)));
|
||||||
|
// 测试 type 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setType(null)));
|
||||||
|
// 测试 category 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCategory(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setRemark(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
testDemoMapper.insert(cloneIgnoreId(dbTestDemo, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
AppTestDemoExportReqVO reqVO = new AppTestDemoExportReqVO();
|
||||||
|
reqVO.setName(null);
|
||||||
|
reqVO.setStatus(null);
|
||||||
|
reqVO.setType(null);
|
||||||
|
reqVO.setCategory(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setBeginCreateTime(null);
|
||||||
|
reqVO.setEndCreateTime(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
List<TestDemoDO> list = testDemoService.getTestDemoList(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, list.size());
|
||||||
|
assertPojoEquals(dbTestDemo, list.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
<configuration>
|
||||||
|
<!-- 引用 Spring Boot 的 logback 基础配置 -->
|
||||||
|
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||||||
|
</configuration>
|
||||||
Loading…
Reference in New Issue