test(QueryUtil): 修复测试用例中criteria的空指针问题

修改测试用例中query.getCriteria()的调用方式,使用orElse处理可能的空值情况,避免空指针异常
This commit is contained in:
张翔
2026-03-24 14:30:16 +08:00
parent e4721053bd
commit f6916fb5b9
@@ -1,7 +1,5 @@
package cn.novalon.manage.db.dao;
import cn.novalon.manage.db.dao.QueryField;
import cn.novalon.manage.db.dao.QueryUtil;
import org.junit.jupiter.api.Test;
import org.springframework.data.relational.core.query.Criteria;
import org.springframework.data.relational.core.query.Query;
@@ -51,16 +49,16 @@ class QueryUtilDetailedTest {
@QueryField(propName = "updatedAt", type = QueryField.Type.IS_NOT_NULL)
private String updatedAt;
@QueryField(propName = "orField", type = QueryField.Type.OR,
orPropVal = QueryField.Type.IS_NULL,
orPropNames = {"field1", "field2"})
@QueryField(propName = "orField", type = QueryField.Type.OR, orPropVal = QueryField.Type.IS_NULL, orPropNames = {
"field1", "field2" })
private String orField;
public TestQuery() {}
public TestQuery() {
}
public TestQuery(String name, Integer age, Integer score, String status, String email,
String phone, List<String> roles, String keyword, String deletedAt,
String updatedAt, String orField) {
public TestQuery(String name, Integer age, Integer score, String status, String email,
String phone, List<String> roles, String keyword, String deletedAt,
String updatedAt, String orField) {
this.name = name;
this.age = age;
this.score = score;
@@ -74,24 +72,56 @@ class QueryUtilDetailedTest {
this.orField = orField;
}
public String getName() { return name; }
public Integer getAge() { return age; }
public Integer getScore() { return score; }
public String getStatus() { return status; }
public String getEmail() { return email; }
public String getPhone() { return phone; }
public List<String> getRoles() { return roles; }
public String getKeyword() { return keyword; }
public String getDeletedAt() { return deletedAt; }
public String getUpdatedAt() { return updatedAt; }
public String getOrField() { return orField; }
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public Integer getScore() {
return score;
}
public String getStatus() {
return status;
}
public String getEmail() {
return email;
}
public String getPhone() {
return phone;
}
public List<String> getRoles() {
return roles;
}
public String getKeyword() {
return keyword;
}
public String getDeletedAt() {
return deletedAt;
}
public String getUpdatedAt() {
return updatedAt;
}
public String getOrField() {
return orField;
}
}
@Test
void testNullQuery() {
Query query = QueryUtil.getQuery(null);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -100,7 +130,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery();
Query query = QueryUtil.getQuery(testQuery, true);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -109,7 +139,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery();
Query query = QueryUtil.getQuery(testQuery, false);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -118,7 +148,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery("John", null, null, null, null, null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -127,7 +157,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, 18, null, null, null, null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -136,7 +166,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, 100, null, null, null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -145,7 +175,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, "active", null, null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -154,7 +184,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, "@example.com", null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -163,27 +193,27 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, "123", null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@Test
void testInCondition() {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
Arrays.asList("admin", "user"), null, null, null, null);
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
Arrays.asList("admin", "user"), null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@Test
void testInConditionWithEmptyList() {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
Collections.emptyList(), null, null, null, null);
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
Collections.emptyList(), null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -192,7 +222,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, "test", null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -201,7 +231,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, "keyword", null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -210,7 +240,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, "null", null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -219,7 +249,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, null, "value", null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -228,7 +258,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, null, null, "value");
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -237,7 +267,7 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery("", null, null, null, null, null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@@ -246,27 +276,27 @@ class QueryUtilDetailedTest {
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, null, null, null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@Test
void testMultipleConditions() {
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
"123", Arrays.asList("admin"), "test", null, "value", null);
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
"123", Arrays.asList("admin"), "test", null, "value", null);
Query query = QueryUtil.getQuery(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}
@Test
void testQueryAllWithoutDeletedAtFilter() {
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
"123", Arrays.asList("admin"), "test", null, "value", null);
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
"123", Arrays.asList("admin"), "test", null, "value", null);
Query query = QueryUtil.getQueryAll(testQuery);
assertNotNull(query);
Criteria criteria = query.getCriteria();
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
assertNotNull(criteria);
}