From 287800eeabdef84bc37fa50a3ef671e0beff7bbd Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 25 May 2021 11:55:37 +0800 Subject: [PATCH] add test --- .../src/main/java/cn/hutool/db/Entity.java | 90 ++++++++++--------- .../test/java/cn/hutool/db/EntityTest.java | 29 ++++-- 2 files changed, 67 insertions(+), 52 deletions(-) diff --git a/hutool-db/src/main/java/cn/hutool/db/Entity.java b/hutool-db/src/main/java/cn/hutool/db/Entity.java index 4a85130e9..c3dbeb533 100644 --- a/hutool-db/src/main/java/cn/hutool/db/Entity.java +++ b/hutool-db/src/main/java/cn/hutool/db/Entity.java @@ -1,13 +1,5 @@ package cn.hutool.db; -import java.nio.charset.Charset; -import java.sql.Blob; -import java.sql.Clob; -import java.sql.RowId; -import java.sql.Time; -import java.sql.Timestamp; -import java.util.*; - import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ArrayUtil; @@ -16,22 +8,33 @@ import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.db.sql.SqlUtil; +import java.nio.charset.Charset; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.RowId; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.Set; + /** * 数据实体对象
* 数据实体类充当两个角色:
* 1. 数据的载体,一个Entity对应数据库中的一个row
* 2. SQL条件,Entity中的每一个字段对应一个条件,字段值对应条件的值 - * - * @author loolly * + * @author loolly */ public class Entity extends Dict { private static final long serialVersionUID = -1951012511464327448L; // --------------------------------------------------------------- Static method start + /** * 创建Entity - * + * * @return Entity */ public static Entity create() { @@ -40,7 +43,7 @@ public class Entity extends Dict { /** * 创建Entity - * + * * @param tableName 表名 * @return Entity */ @@ -50,8 +53,8 @@ public class Entity extends Dict { /** * 将PO对象转为Entity - * - * @param Bean对象类型 + * + * @param Bean对象类型 * @param bean Bean对象 * @return Entity */ @@ -61,11 +64,11 @@ public class Entity extends Dict { /** * 将PO对象转为Entity - * - * @param Bean对象类型 - * @param bean Bean对象 + * + * @param Bean对象类型 + * @param bean Bean对象 * @param isToUnderlineCase 是否转换为下划线模式 - * @param ignoreNullValue 是否忽略值为空的字段 + * @param ignoreNullValue 是否忽略值为空的字段 * @return Entity */ public static Entity parse(T bean, boolean isToUnderlineCase, boolean ignoreNullValue) { @@ -74,8 +77,8 @@ public class Entity extends Dict { /** * 将PO对象转为Entity,并采用下划线法转换字段 - * - * @param Bean对象类型 + * + * @param Bean对象类型 * @param bean Bean对象 * @return Entity */ @@ -95,18 +98,18 @@ public class Entity extends Dict { /** * 构造 - * + * * @param tableName 数据表名 */ public Entity(String tableName) { this.tableName = tableName; } - + /** * 构造 - * - * @param tableName 数据表名 + * + * @param tableName 数据表名 * @param caseInsensitive 是否大小写不敏感 * @since 4.5.16 */ @@ -117,6 +120,7 @@ public class Entity extends Dict { // --------------------------------------------------------------- Constructor end // --------------------------------------------------------------- Getters and Setters start + /** * @return 获得表名 */ @@ -126,7 +130,7 @@ public class Entity extends Dict { /** * 设置表名 - * + * * @param tableName 表名 * @return 本身 */ @@ -136,7 +140,6 @@ public class Entity extends Dict { } /** - * * @return 字段集合 */ public Set getFieldNames() { @@ -145,7 +148,7 @@ public class Entity extends Dict { /** * 设置字段列表,用于限制加入的字段的值 - * + * * @param fieldNames 字段列表 * @return 自身 */ @@ -158,7 +161,7 @@ public class Entity extends Dict { /** * 设置字段列表,用于限制加入的字段的值 - * + * * @param fieldNames 字段列表 * @return 自身 */ @@ -171,7 +174,7 @@ public class Entity extends Dict { /** * 添加字段列表 - * + * * @param fieldNames 字段列表 * @return 自身 */ @@ -187,11 +190,12 @@ public class Entity extends Dict { } // --------------------------------------------------------------- Getters and Setters end + /** * 将值对象转换为Entity
* 类名会被当作表名,小写第一个字母 - * - * @param Bean对象类型 + * + * @param Bean对象类型 * @param bean Bean对象 * @return 自己 */ @@ -207,10 +211,10 @@ public class Entity extends Dict { * 将值对象转换为Entity
* 类名会被当作表名,小写第一个字母 * - * @param Bean对象类型 - * @param bean Bean对象 + * @param Bean对象类型 + * @param bean Bean对象 * @param isToUnderlineCase 是否转换为下划线模式 - * @param ignoreNullValue 是否忽略值为空的字段 + * @param ignoreNullValue 是否忽略值为空的字段 * @return 自己 */ @Override @@ -221,10 +225,10 @@ public class Entity extends Dict { } return (Entity) super.parseBean(bean, isToUnderlineCase, ignoreNullValue); } - + /** * 过滤Map保留指定键值对,如果键不存在跳过 - * + * * @param keys 键列表 * @return Dict 结果 * @since 4.0.10 @@ -235,7 +239,7 @@ public class Entity extends Dict { result.setFieldNames(this.fieldNames); for (String key : keys) { - if(this.containsKey(key)) { + if (this.containsKey(key)) { result.put(key, this.get(key)); } } @@ -258,7 +262,7 @@ public class Entity extends Dict { /** * 获得Clob类型结果 - * + * * @param field 参数 * @return Clob */ @@ -268,7 +272,7 @@ public class Entity extends Dict { /** * 获得Blob类型结果 - * + * * @param field 参数 * @return Blob * @since 3.0.6 @@ -330,8 +334,8 @@ public class Entity extends Dict { /** * 获得字符串值
* 支持Clob、Blob、RowId - * - * @param field 字段名 + * + * @param field 字段名 * @param charset 编码 * @return 字段对应值 * @since 3.0.6 @@ -351,7 +355,7 @@ public class Entity extends Dict { /** * 获得rowid - * + * * @return RowId */ public RowId getRowId() { @@ -360,7 +364,7 @@ public class Entity extends Dict { /** * 获得rowid - * + * * @param field rowid属性名 * @return RowId */ diff --git a/hutool-db/src/test/java/cn/hutool/db/EntityTest.java b/hutool-db/src/test/java/cn/hutool/db/EntityTest.java index 8d48a2557..26e4d762a 100644 --- a/hutool-db/src/test/java/cn/hutool/db/EntityTest.java +++ b/hutool-db/src/test/java/cn/hutool/db/EntityTest.java @@ -1,46 +1,57 @@ package cn.hutool.db; +import cn.hutool.db.pojo.User; import org.junit.Assert; import org.junit.Test; -import cn.hutool.db.pojo.User; - /** * Entity测试 - * + * * @author looly * */ public class EntityTest { - + @Test public void parseTest() { User user = new User(); user.setId(1); user.setName("test"); - + Entity entity = Entity.create("testTable").parseBean(user); Assert.assertEquals(Integer.valueOf(1), entity.getInt("id")); Assert.assertEquals("test", entity.getStr("name")); } - + @Test public void parseTest2() { User user = new User(); user.setId(1); user.setName("test"); - + Entity entity = Entity.create().parseBean(user); Assert.assertEquals(Integer.valueOf(1), entity.getInt("id")); Assert.assertEquals("test", entity.getStr("name")); Assert.assertEquals("user", entity.getTableName()); } - + + @Test + public void parseTest3() { + User user = new User(); + user.setName("test"); + + Entity entity = Entity.create().parseBean(user, false, true); + + Assert.assertFalse(entity.containsKey("id")); + Assert.assertEquals("test", entity.getStr("name")); + Assert.assertEquals("user", entity.getTableName()); + } + @Test public void entityToBeanIgnoreCaseTest() { Entity entity = Entity.create().set("ID", 2).set("NAME", "testName"); User user = entity.toBeanIgnoreCase(User.class); - + Assert.assertEquals(Integer.valueOf(2), user.getId()); Assert.assertEquals("testName", user.getName()); }