|
|
|
@@ -31,7 +31,7 @@ public class CodegenEngineTest extends BaseMockitoUnitTest {
|
|
|
|
|
|
|
|
|
|
@Spy
|
|
|
|
|
private CodegenProperties codegenProperties = new CodegenProperties()
|
|
|
|
|
.setBasePackage("cn.iocoder.yudao.module");
|
|
|
|
|
.setBasePackage("cn.iocoder.yudao");
|
|
|
|
|
|
|
|
|
|
@BeforeEach
|
|
|
|
|
public void setUp() {
|
|
|
|
@@ -45,7 +45,7 @@ public class CodegenEngineTest extends BaseMockitoUnitTest {
|
|
|
|
|
.setTableName("system_user").setTableComment("用户表")
|
|
|
|
|
.setModuleName("system").setBusinessName("user").setClassName("SystemUser")
|
|
|
|
|
.setClassComment("用户").setAuthor("芋道源码")
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.CRUD.getType())
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.ONE.getType())
|
|
|
|
|
.setFrontType(CodegenFrontTypeEnum.VUE3.getType())
|
|
|
|
|
.setParentMenuId(10L);
|
|
|
|
|
CodegenColumnDO idColumn = new CodegenColumnDO().setColumnName("id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
@@ -125,32 +125,32 @@ public class CodegenEngineTest extends BaseMockitoUnitTest {
|
|
|
|
|
for (String vo : new String[]{"SystemUserBaseVO", "SystemUserCreateReqVO", "SystemUserUpdateReqVO", "SystemUserRespVO",
|
|
|
|
|
"SystemUserPageReqVO", "SystemUserExportReqVO", "SystemUserExcelVO"}) {
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/" + vo,
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/controller/admin/user/vo/" + vo + ".java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/" + vo + ".java");
|
|
|
|
|
}
|
|
|
|
|
// 断言 controller 类
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserController",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/controller/admin/user/SystemUserController.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/SystemUserController.java");
|
|
|
|
|
// 断言 service 类
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserService",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/service/user/SystemUserService.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/SystemUserService.java");
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserServiceImpl",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/service/user/SystemUserServiceImpl.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/SystemUserServiceImpl.java");
|
|
|
|
|
// 断言 convert 类
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserConvert",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/convert/user/SystemUserConvert.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/user/SystemUserConvert.java");
|
|
|
|
|
// 断言 enums 类
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/ErrorCodeConstants",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/module/system/enums/ErrorCodeConstants_手动操作.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants_手动操作.java");
|
|
|
|
|
// 断言 dal 类
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserDO",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/dal/dataobject/user/SystemUserDO.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/SystemUserDO.java");
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserMapper",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/dal/mysql/user/SystemUserMapper.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/SystemUserMapper.java");
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserMapper_xml",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/SystemUserMapper.xml");
|
|
|
|
|
// 断言 test 类
|
|
|
|
|
assertPathContentEquals("vue3_crud/java/SystemUserServiceImplTest",
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/module/system/service/user/SystemUserServiceImplTest.java");
|
|
|
|
|
result, "yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/SystemUserServiceImplTest.java");
|
|
|
|
|
// 断言 sql 语句
|
|
|
|
|
assertPathContentEquals("vue3_crud/sql/h2",
|
|
|
|
|
result, "sql/h2.sql");
|
|
|
|
@@ -170,73 +170,116 @@ public class CodegenEngineTest extends BaseMockitoUnitTest {
|
|
|
|
|
// 准备请求参数
|
|
|
|
|
// 主表
|
|
|
|
|
CodegenTableDO table = new CodegenTableDO().setScene(CodegenSceneEnum.ADMIN.getScene())
|
|
|
|
|
.setTableName("system_user").setTableComment("用户表")
|
|
|
|
|
.setModuleName("system").setBusinessName("user").setClassName("SystemUser")
|
|
|
|
|
.setClassComment("用户").setAuthor("芋道源码")
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.MASTER_SUB.getType()).setSubColumnId(100L)
|
|
|
|
|
.setFrontType(CodegenFrontTypeEnum.VUE3.getType())
|
|
|
|
|
.setParentMenuId(10L);
|
|
|
|
|
.setTableName("infra_demo_student").setTableComment("学生表")
|
|
|
|
|
.setModuleName("infra").setBusinessName("demo02").setClassName("InfraDemoStudent")
|
|
|
|
|
.setClassComment("学生").setAuthor("芋道源码")
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.MASTER.getType())
|
|
|
|
|
.setFrontType(CodegenFrontTypeEnum.VUE3.getType());
|
|
|
|
|
CodegenColumnDO idColumn = new CodegenColumnDO().setColumnName("id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
.setColumnComment("编号").setNullable(false).setPrimaryKey(true).setAutoIncrement(true)
|
|
|
|
|
.setOrdinalPosition(1).setJavaType("Long").setJavaField("id").setExample("1024")
|
|
|
|
|
.setCreateOperation(false).setUpdateOperation(true).setListOperation(false)
|
|
|
|
|
.setListOperationResult(true);
|
|
|
|
|
|
|
|
|
|
List<CodegenColumnDO> columns = Collections.singletonList(idColumn);
|
|
|
|
|
// 子表
|
|
|
|
|
CodegenTableDO subTable = new CodegenTableDO().setScene(CodegenSceneEnum.ADMIN.getScene())
|
|
|
|
|
.setTableName("system_user_contact").setTableComment("用户联系人表")
|
|
|
|
|
.setModuleName("system").setBusinessName("user").setClassName("SystemUserContact")
|
|
|
|
|
.setClassComment("用户联系人").setAuthor("芋道源码")
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.CRUD.getType())
|
|
|
|
|
.setFrontType(CodegenFrontTypeEnum.VUE3.getType());
|
|
|
|
|
CodegenColumnDO subIdColumn = new CodegenColumnDO().setColumnName("id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
// 子表(联系人)
|
|
|
|
|
CodegenTableDO contactTable = new CodegenTableDO().setScene(CodegenSceneEnum.ADMIN.getScene())
|
|
|
|
|
.setTableName("infra_demo_student_contact").setTableComment("学生联系人表")
|
|
|
|
|
.setModuleName("infra").setBusinessName("demo02").setClassName("InfraDemoStudentContact")
|
|
|
|
|
.setClassComment("学生联系人").setAuthor("芋道源码")
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.SUB.getType())
|
|
|
|
|
.setFrontType(CodegenFrontTypeEnum.VUE3.getType())
|
|
|
|
|
.setSubJoinColumnId(100L).setSubJoinMany(true);
|
|
|
|
|
CodegenColumnDO contactIdColumn = new CodegenColumnDO().setColumnName("id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
.setColumnComment("编号").setNullable(false).setPrimaryKey(true).setAutoIncrement(true)
|
|
|
|
|
.setOrdinalPosition(1).setJavaType("Long").setJavaField("id").setExample("1024")
|
|
|
|
|
.setCreateOperation(false).setUpdateOperation(true).setListOperation(false)
|
|
|
|
|
.setListOperationResult(true);
|
|
|
|
|
CodegenColumnDO userIdColumn = new CodegenColumnDO().setColumnName("user_id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
.setColumnComment("用户编号").setNullable(false).setPrimaryKey(false)
|
|
|
|
|
.setOrdinalPosition(2).setJavaType("Long").setJavaField("userId").setExample("2048")
|
|
|
|
|
CodegenColumnDO contactStudentIdColumn = new CodegenColumnDO().setColumnName("student_id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
.setColumnComment("学生编号").setNullable(false).setPrimaryKey(false)
|
|
|
|
|
.setOrdinalPosition(2).setJavaType("Long").setJavaField("studentId").setExample("2048")
|
|
|
|
|
.setCreateOperation(false).setUpdateOperation(true).setListOperation(false)
|
|
|
|
|
.setListOperationResult(true)
|
|
|
|
|
.setId(100L);
|
|
|
|
|
List<CodegenColumnDO> subColumns = Arrays.asList(subIdColumn, userIdColumn);
|
|
|
|
|
CodegenColumnDO contactNameColumn = new CodegenColumnDO().setColumnName("name").setDataType(JdbcType.VARCHAR.name())
|
|
|
|
|
.setColumnComment("名字").setNullable(false).setPrimaryKey(false)
|
|
|
|
|
.setOrdinalPosition(3).setJavaType("String").setJavaField("name").setExample("芋头")
|
|
|
|
|
.setCreateOperation(true).setUpdateOperation(true).setListOperation(true)
|
|
|
|
|
.setListOperationCondition(CodegenColumnListConditionEnum.LIKE.getCondition()).setListOperationResult(true)
|
|
|
|
|
.setHtmlType(CodegenColumnHtmlTypeEnum.INPUT.getType());
|
|
|
|
|
List<CodegenColumnDO> contactColumns = Arrays.asList(contactIdColumn, contactStudentIdColumn, contactNameColumn);
|
|
|
|
|
// 子表(地址)
|
|
|
|
|
CodegenTableDO addressTable = new CodegenTableDO().setScene(CodegenSceneEnum.ADMIN.getScene())
|
|
|
|
|
.setTableName("infra_demo_student_address").setTableComment("学生地址表")
|
|
|
|
|
.setModuleName("infra").setBusinessName("demo02").setClassName("InfraDemoStudentAddress")
|
|
|
|
|
.setClassComment("学生地址").setAuthor("芋道源码")
|
|
|
|
|
.setTemplateType(CodegenTemplateTypeEnum.SUB.getType())
|
|
|
|
|
.setFrontType(CodegenFrontTypeEnum.VUE3.getType())
|
|
|
|
|
.setSubJoinColumnId(200L).setSubJoinMany(false);
|
|
|
|
|
CodegenColumnDO addressIdColumn = new CodegenColumnDO().setColumnName("id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
.setColumnComment("编号").setNullable(false).setPrimaryKey(true).setAutoIncrement(true)
|
|
|
|
|
.setOrdinalPosition(1).setJavaType("Long").setJavaField("id").setExample("1024")
|
|
|
|
|
.setCreateOperation(false).setUpdateOperation(true).setListOperation(false)
|
|
|
|
|
.setListOperationResult(true);
|
|
|
|
|
CodegenColumnDO addressStudentColumn = new CodegenColumnDO().setColumnName("student_id").setDataType(JdbcType.BIGINT.name())
|
|
|
|
|
.setColumnComment("学生编号").setNullable(false).setPrimaryKey(false)
|
|
|
|
|
.setOrdinalPosition(2).setJavaType("Long").setJavaField("studentId").setExample("2048")
|
|
|
|
|
.setCreateOperation(false).setUpdateOperation(true).setListOperation(false)
|
|
|
|
|
.setListOperationResult(true)
|
|
|
|
|
.setId(200L);
|
|
|
|
|
CodegenColumnDO addressDetailColumn = new CodegenColumnDO().setColumnName("detail").setDataType(JdbcType.VARCHAR.name())
|
|
|
|
|
.setColumnComment("明细").setNullable(false).setPrimaryKey(false)
|
|
|
|
|
.setOrdinalPosition(3).setJavaType("String").setJavaField("detail").setExample("码头路 88 号")
|
|
|
|
|
.setCreateOperation(true).setUpdateOperation(true).setListOperation(true)
|
|
|
|
|
.setListOperationCondition(CodegenColumnListConditionEnum.LIKE.getCondition()).setListOperationResult(true)
|
|
|
|
|
.setHtmlType(CodegenColumnHtmlTypeEnum.INPUT.getType());
|
|
|
|
|
List<CodegenColumnDO> addressColumns = Arrays.asList(addressIdColumn, addressStudentColumn, addressDetailColumn);
|
|
|
|
|
|
|
|
|
|
// 调用
|
|
|
|
|
Map<String, String> result = codegenEngine.execute(table, columns, subTable, subColumns);
|
|
|
|
|
Map<String, String> result = codegenEngine.execute(table, columns,
|
|
|
|
|
Arrays.asList(contactTable, addressTable), Arrays.asList(contactColumns, addressColumns));
|
|
|
|
|
|
|
|
|
|
// 断言
|
|
|
|
|
assertEquals(23, result.size());
|
|
|
|
|
assertEquals(25, result.size());
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, String> entry : result.entrySet()) {
|
|
|
|
|
System.out.println(entry.getKey());
|
|
|
|
|
System.out.println(entry.getValue());
|
|
|
|
|
System.out.println("");
|
|
|
|
|
System.out.println("");
|
|
|
|
|
System.out.println("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// // 断言 vo 类
|
|
|
|
|
// for (String vo : new String[]{"SystemUserBaseVO", "SystemUserCreateReqVO", "SystemUserUpdateReqVO", "SystemUserRespVO",
|
|
|
|
|
// "SystemUserPageReqVO", "SystemUserExportReqVO", "SystemUserExcelVO"}) {
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/" + vo,
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/controller/admin/user/vo/" + vo + ".java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/" + vo + ".java");
|
|
|
|
|
// }
|
|
|
|
|
// // 断言 controller 类
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserController",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/controller/admin/user/SystemUserController.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/SystemUserController.java");
|
|
|
|
|
// // 断言 service 类
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserService",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/service/user/SystemUserService.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/SystemUserService.java");
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserServiceImpl",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/service/user/SystemUserServiceImpl.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/SystemUserServiceImpl.java");
|
|
|
|
|
// // 断言 convert 类
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserConvert",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/convert/user/SystemUserConvert.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/user/SystemUserConvert.java");
|
|
|
|
|
// // 断言 enums 类
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/ErrorCodeConstants",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/module/system/enums/ErrorCodeConstants_手动操作.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants_手动操作.java");
|
|
|
|
|
// // 断言 dal 类
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserDO",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/dal/dataobject/user/SystemUserDO.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/SystemUserDO.java");
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserMapper",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/module/system/dal/mysql/user/SystemUserMapper.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/SystemUserMapper.java");
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserMapper_xml",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/SystemUserMapper.xml");
|
|
|
|
|
// // 断言 test 类
|
|
|
|
|
// assertPathContentEquals("vue3_crud/java/SystemUserServiceImplTest",
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/module/system/service/user/SystemUserServiceImplTest.java");
|
|
|
|
|
// result, "yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/SystemUserServiceImplTest.java");
|
|
|
|
|
// // 断言 sql 语句
|
|
|
|
|
// assertPathContentEquals("vue3_crud/sql/h2",
|
|
|
|
|
// result, "sql/h2.sql");
|
|
|
|
|