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

View File

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