test: 添加更多 hasCondition 测试。

This commit is contained in:
Suomm 2024-03-08 12:50:07 +08:00
parent 67981ec73b
commit 1340e3b8c6
2 changed files with 28 additions and 21 deletions

View File

@ -100,16 +100,8 @@ public class QueryWrapper extends BaseQueryWrapper<QueryWrapper> {
* @return {@code true} 包含条件{@code false} 不包含条件
*/
public boolean hasCondition() {
// 无任何条件
if (whereQueryCondition == null) {
return false;
}
// 第一个条件有效
if (whereQueryCondition.checkEffective()) {
return true;
}
// 第一个条件无效时查询之后是否有生效的条件
return whereQueryCondition.getNextEffectiveCondition() != null;
QueryCondition c;
return (c = whereQueryCondition) != null && (c.checkEffective() || c.getNextEffectiveCondition() != null);
}
@SuppressWarnings("unchecked")

View File

@ -319,24 +319,39 @@ public class DynamicConditionTest {
@Test
public void testHasCondition() {
QueryWrapper q1 = QueryWrapper.create();
QueryWrapper q2 = QueryWrapper.create()
QueryWrapper queryWrapper = QueryWrapper.create();
assertFalse(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1));
QueryWrapper q3 = QueryWrapper.create()
assertTrue(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1).and(ACCOUNT.AGE.eq(18)));
assertTrue(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1, false).and(ACCOUNT.AGE.eq(18)));
assertTrue(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1, false).and(ACCOUNT.AGE.eq(18, false)));
assertFalse(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1, false));
QueryWrapper q4 = QueryWrapper.create()
assertFalse(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1, false))
.and(ACCOUNT.AGE.eq(18, false));
QueryWrapper q5 = QueryWrapper.create()
assertFalse(queryWrapper.hasCondition());
queryWrapper = QueryWrapper.create()
.where(ACCOUNT.ID.eq(1, false))
.and(ACCOUNT.AGE.eq(18))
.or(ACCOUNT.IS_DELETE.eq(0, false));
assertFalse(q1.hasCondition());
assertTrue(q2.hasCondition());
assertFalse(q3.hasCondition());
assertFalse(q4.hasCondition());
assertTrue(q5.hasCondition());
assertTrue(queryWrapper.hasCondition());
}
}