Commit ba4e90b5298c81977a462f360763ddeb88d76a37
1 parent
0ff786d0
infra:完善 DatabaseTableServiceImpl 单元测试
Showing
5 changed files
with
113 additions
and
4 deletions
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
| @@ -39,27 +39,38 @@ public class CodegenColumnDO extends BaseDO { | @@ -39,27 +39,38 @@ public class CodegenColumnDO extends BaseDO { | ||
| 39 | 39 | ||
| 40 | /** | 40 | /** |
| 41 | * 字段名 | 41 | * 字段名 |
| 42 | + * | ||
| 43 | + * 关联 {@link TableField#getName()} | ||
| 42 | */ | 44 | */ |
| 43 | private String columnName; | 45 | private String columnName; |
| 44 | /** | 46 | /** |
| 45 | * 数据库字段类型 | 47 | * 数据库字段类型 |
| 48 | + * | ||
| 46 | * 关联 {@link TableField.MetaInfo#getJdbcType()} | 49 | * 关联 {@link TableField.MetaInfo#getJdbcType()} |
| 47 | */ | 50 | */ |
| 48 | private String dataType; | 51 | private String dataType; |
| 49 | /** | 52 | /** |
| 50 | * 字段描述 | 53 | * 字段描述 |
| 54 | + * | ||
| 55 | + * 关联 {@link TableField#getComment()} | ||
| 51 | */ | 56 | */ |
| 52 | private String columnComment; | 57 | private String columnComment; |
| 53 | /** | 58 | /** |
| 54 | * 是否允许为空 | 59 | * 是否允许为空 |
| 60 | + * | ||
| 61 | + * 关联 {@link TableField.MetaInfo#isNullable()} | ||
| 55 | */ | 62 | */ |
| 56 | private Boolean nullable; | 63 | private Boolean nullable; |
| 57 | /** | 64 | /** |
| 58 | * 是否主键 | 65 | * 是否主键 |
| 66 | + * | ||
| 67 | + * 关联 {@link TableField#isKeyFlag()} | ||
| 59 | */ | 68 | */ |
| 60 | private Boolean primaryKey; | 69 | private Boolean primaryKey; |
| 61 | /** | 70 | /** |
| 62 | * 是否自增 | 71 | * 是否自增 |
| 72 | + * | ||
| 73 | + * 关联 {@link TableField#isKeyIdentityFlag()} | ||
| 63 | */ | 74 | */ |
| 64 | private Boolean autoIncrement; | 75 | private Boolean autoIncrement; |
| 65 | /** | 76 | /** |
| @@ -71,12 +82,16 @@ public class CodegenColumnDO extends BaseDO { | @@ -71,12 +82,16 @@ public class CodegenColumnDO extends BaseDO { | ||
| 71 | 82 | ||
| 72 | /** | 83 | /** |
| 73 | * Java 属性类型 | 84 | * Java 属性类型 |
| 74 | - * <p> | 85 | + * |
| 75 | * 例如说 String、Boolean 等等 | 86 | * 例如说 String、Boolean 等等 |
| 87 | + * | ||
| 88 | + * 关联 {@link TableField#getColumnType()} | ||
| 76 | */ | 89 | */ |
| 77 | private String javaType; | 90 | private String javaType; |
| 78 | /** | 91 | /** |
| 79 | * Java 属性名 | 92 | * Java 属性名 |
| 93 | + * | ||
| 94 | + * 关联 {@link TableField#getPropertyName()} | ||
| 80 | */ | 95 | */ |
| 81 | private String javaField; | 96 | private String javaField; |
| 82 | /** | 97 | /** |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java
| @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; | @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; | ||
| 6 | import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; | 6 | import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; |
| 7 | import com.baomidou.mybatisplus.annotation.KeySequence; | 7 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 8 | import com.baomidou.mybatisplus.annotation.TableName; | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
| 9 | +import com.baomidou.mybatisplus.generator.config.po.TableInfo; | ||
| 9 | import lombok.Data; | 10 | import lombok.Data; |
| 10 | import lombok.EqualsAndHashCode; | 11 | import lombok.EqualsAndHashCode; |
| 11 | import lombok.experimental.Accessors; | 12 | import lombok.experimental.Accessors; |
| @@ -44,10 +45,14 @@ public class CodegenTableDO extends BaseDO { | @@ -44,10 +45,14 @@ public class CodegenTableDO extends BaseDO { | ||
| 44 | 45 | ||
| 45 | /** | 46 | /** |
| 46 | * 表名称 | 47 | * 表名称 |
| 48 | + * | ||
| 49 | + * 关联 {@link TableInfo#getName()} | ||
| 47 | */ | 50 | */ |
| 48 | private String tableName; | 51 | private String tableName; |
| 49 | /** | 52 | /** |
| 50 | * 表描述 | 53 | * 表描述 |
| 54 | + * | ||
| 55 | + * 关联 {@link TableInfo#getComment()} | ||
| 51 | */ | 56 | */ |
| 52 | private String tableComment; | 57 | private String tableComment; |
| 53 | /** | 58 | /** |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java
| @@ -41,7 +41,7 @@ public class DatabaseTableServiceImpl implements DatabaseTableService { | @@ -41,7 +41,7 @@ public class DatabaseTableServiceImpl implements DatabaseTableService { | ||
| 41 | return CollUtil.getFirst(getTableList0(dataSourceConfigId, name)); | 41 | return CollUtil.getFirst(getTableList0(dataSourceConfigId, name)); |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | - public List<TableInfo> getTableList0(Long dataSourceConfigId, String name) { | 44 | + private List<TableInfo> getTableList0(Long dataSourceConfigId, String name) { |
| 45 | // 获得数据源配置 | 45 | // 获得数据源配置 |
| 46 | DataSourceConfigDO config = dataSourceConfigService.getDataSourceConfig(dataSourceConfigId); | 46 | DataSourceConfigDO config = dataSourceConfigService.getDataSourceConfig(dataSourceConfigId); |
| 47 | Assert.notNull(config, "数据源({}) 不存在!", dataSourceConfigId); | 47 | Assert.notNull(config, "数据源({}) 不存在!", dataSourceConfigId); |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImplTest.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.infra.service.db; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | ||
| 4 | +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; | ||
| 5 | +import com.baomidou.mybatisplus.generator.config.po.TableField; | ||
| 6 | +import com.baomidou.mybatisplus.generator.config.po.TableInfo; | ||
| 7 | +import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; | ||
| 8 | +import org.apache.ibatis.type.JdbcType; | ||
| 9 | +import org.junit.jupiter.api.Test; | ||
| 10 | +import org.springframework.boot.test.mock.mockito.MockBean; | ||
| 11 | +import org.springframework.context.annotation.Import; | ||
| 12 | + | ||
| 13 | +import javax.annotation.Resource; | ||
| 14 | +import java.util.List; | ||
| 15 | + | ||
| 16 | +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; | ||
| 17 | +import static org.junit.jupiter.api.Assertions.*; | ||
| 18 | +import static org.mockito.ArgumentMatchers.eq; | ||
| 19 | +import static org.mockito.Mockito.when; | ||
| 20 | + | ||
| 21 | +@Import(DatabaseTableServiceImpl.class) | ||
| 22 | +public class DatabaseTableServiceImplTest extends BaseDbUnitTest { | ||
| 23 | + | ||
| 24 | + @Resource | ||
| 25 | + private DatabaseTableServiceImpl databaseTableService; | ||
| 26 | + | ||
| 27 | + @MockBean | ||
| 28 | + private DataSourceConfigService dataSourceConfigService; | ||
| 29 | + | ||
| 30 | + @Test | ||
| 31 | + public void testGetTableList() { | ||
| 32 | + // 准备参数 | ||
| 33 | + Long dataSourceConfigId = randomLongId(); | ||
| 34 | + // mock 方法 | ||
| 35 | + DataSourceConfigDO dataSourceConfig = new DataSourceConfigDO().setUsername("sa").setPassword("") | ||
| 36 | + .setUrl("jdbc:h2:mem:testdb"); | ||
| 37 | + when(dataSourceConfigService.getDataSourceConfig(eq(dataSourceConfigId))) | ||
| 38 | + .thenReturn(dataSourceConfig); | ||
| 39 | + | ||
| 40 | + // 调用 | ||
| 41 | + List<TableInfo> tables = databaseTableService.getTableList(dataSourceConfigId, | ||
| 42 | + "config", "参数"); | ||
| 43 | + // 断言 | ||
| 44 | + assertEquals(1, tables.size()); | ||
| 45 | + assertTableInfo(tables.get(0)); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + @Test | ||
| 49 | + public void testGetTable() { | ||
| 50 | + // 准备参数 | ||
| 51 | + Long dataSourceConfigId = randomLongId(); | ||
| 52 | + // mock 方法 | ||
| 53 | + DataSourceConfigDO dataSourceConfig = new DataSourceConfigDO().setUsername("sa").setPassword("") | ||
| 54 | + .setUrl("jdbc:h2:mem:testdb"); | ||
| 55 | + when(dataSourceConfigService.getDataSourceConfig(eq(dataSourceConfigId))) | ||
| 56 | + .thenReturn(dataSourceConfig); | ||
| 57 | + | ||
| 58 | + // 调用 | ||
| 59 | + TableInfo tableInfo = databaseTableService.getTable(dataSourceConfigId, "infra_config"); | ||
| 60 | + // 断言 | ||
| 61 | + assertTableInfo(tableInfo); | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + private void assertTableInfo(TableInfo tableInfo) { | ||
| 65 | + assertEquals("infra_config", tableInfo.getName()); | ||
| 66 | + assertEquals("参数配置表", tableInfo.getComment()); | ||
| 67 | + assertEquals(13, tableInfo.getFields().size()); | ||
| 68 | + // id 字段 | ||
| 69 | + TableField idField = tableInfo.getFields().get(0); | ||
| 70 | + assertEquals("id", idField.getName()); | ||
| 71 | + assertEquals(JdbcType.BIGINT, idField.getMetaInfo().getJdbcType()); | ||
| 72 | + assertEquals("编号", idField.getComment()); | ||
| 73 | + assertFalse(idField.getMetaInfo().isNullable()); | ||
| 74 | + assertTrue(idField.isKeyFlag()); | ||
| 75 | + assertTrue(idField.isKeyIdentityFlag()); | ||
| 76 | + assertEquals(DbColumnType.LONG, idField.getColumnType()); | ||
| 77 | + assertEquals("id", idField.getPropertyName()); | ||
| 78 | + // name 字段 | ||
| 79 | + TableField nameField = tableInfo.getFields().get(3); | ||
| 80 | + assertEquals("name", nameField.getName()); | ||
| 81 | + assertEquals(JdbcType.VARCHAR, nameField.getMetaInfo().getJdbcType()); | ||
| 82 | + assertEquals("名字", nameField.getComment()); | ||
| 83 | + assertFalse(nameField.getMetaInfo().isNullable()); | ||
| 84 | + assertFalse(nameField.isKeyFlag()); | ||
| 85 | + assertFalse(nameField.isKeyIdentityFlag()); | ||
| 86 | + assertEquals(DbColumnType.STRING, nameField.getColumnType()); | ||
| 87 | + assertEquals("name", nameField.getPropertyName()); | ||
| 88 | + } | ||
| 89 | +} |
yudao-module-infra/yudao-module-infra-biz/src/test/resources/sql/create_tables.sql
| 1 | 1 | ||
| 2 | CREATE TABLE IF NOT EXISTS "infra_config" ( | 2 | CREATE TABLE IF NOT EXISTS "infra_config" ( |
| 3 | - "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY, | 3 | + "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '编号', |
| 4 | "category" varchar(50) NOT NULL, | 4 | "category" varchar(50) NOT NULL, |
| 5 | "type" tinyint NOT NULL, | 5 | "type" tinyint NOT NULL, |
| 6 | - "name" varchar(100) NOT NULL DEFAULT '', | 6 | + "name" varchar(100) NOT NULL DEFAULT '' COMMENT '名字', |
| 7 | "config_key" varchar(100) NOT NULL DEFAULT '', | 7 | "config_key" varchar(100) NOT NULL DEFAULT '', |
| 8 | "value" varchar(500) NOT NULL DEFAULT '', | 8 | "value" varchar(500) NOT NULL DEFAULT '', |
| 9 | "visible" bit NOT NULL, | 9 | "visible" bit NOT NULL, |